diff options
462 files changed, 13958 insertions, 10780 deletions
diff --git a/.bzrignore b/.bzrignore index c0bac9d05f1..7a8066fdba1 100644 --- a/.bzrignore +++ b/.bzrignore @@ -900,6 +900,7 @@ libmysql_r/.libs/libmysqlclient_r.lai libmysql_r/.libs/libmysqlclient_r.so.15 libmysql_r/.libs/libmysqlclient_r.so.15.0.0 libmysql_r/acconfig.h +libmysql_r/client_settings.h libmysql_r/conf_to_src libmysql_r/my_static.h libmysql_r/mysys_priv.h @@ -3004,4 +3005,3 @@ win/vs71cache.txt win/vs8cache.txt zlib/*.ds? zlib/*.vcproj -libmysql_r/client_settings.h diff --git a/BUILD/compile-solaris-amd64-debug b/BUILD/compile-solaris-amd64-debug new file mode 100644 index 00000000000..ad1c298907f --- /dev/null +++ b/BUILD/compile-solaris-amd64-debug @@ -0,0 +1,10 @@ +#! /bin/sh +path=`dirname $0` +. "$path/SETUP.sh" +amd64_cflags="-m64 -mtune=athlon64" +extra_flags="$amd64_cflags $debug_cflags $max_cflags" +c_warnings="$c_warnings $debug_extra_warnings" +cxx_warnings="$cxx_warnings $debug_extra_warnings" +extra_configs="$amd64_configs $debug_configs $max_configs --enable-thread-safe-client" + +. "$path/FINISH.sh" diff --git a/BUILD/compile-solaris-amd64-forte b/BUILD/compile-solaris-amd64-forte new file mode 100644 index 00000000000..63aceb16c04 --- /dev/null +++ b/BUILD/compile-solaris-amd64-forte @@ -0,0 +1,52 @@ +#! /bin/sh + +gmake -k clean || true +/bin/rm -f */.deps/*.P config.cache + +path=`dirname $0` +. "$path/autorun.sh" + +# For "optimal" code for this computer add -fast to EXTRA +# To compile 64 bit, add -xarch=v9 to EXTRA_64_BIT + +EXTRA_64_BIT="-xarch=amd64" +EXTRA="-fast" + +# +# The following should not need to be touched +# + +export CC CXX CFLAGS CXXFLAGS +STD="-g -mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT" +ASFLAGS="$EXTRA_64_BIT" +CC=cc-5.0 +CFLAGS="-Xa -xstrconst $STD" +CXX=CC +CXXFLAGS="-noex $STD" +./configure \ + --prefix=/usr/local/mysql \ + --localstatedir=/usr/local/mysql/data \ + --libexecdir=/usr/local/mysql/bin \ + --with-extra-charsets=complex \ + --enable-thread-safe-client \ + --enable-local-infile \ + --with-zlib-dir=bundled \ + --with-big-tables \ + --with-readline \ + --with-archive-storage-engine \ + --with-named-curses=-lcurses \ + --with-big-tables \ + --with-innodb \ + --with-example-storage-engine \ + --with-blackhole-storage-engine \ + --with-federated-storage-engine \ + --with-csv-storage-engine \ + --with-ssl \ + --enable-assembler + +# Not including: +# --with-ndbcluster +# --with-berkeley-db + +gmake -j4 +test $? = 0 && make test diff --git a/BUILD/compile-solaris-amd64-forte-debug b/BUILD/compile-solaris-amd64-forte-debug new file mode 100644 index 00000000000..8e3ade9b429 --- /dev/null +++ b/BUILD/compile-solaris-amd64-forte-debug @@ -0,0 +1,54 @@ +#! /bin/sh + +gmake -k clean || true +/bin/rm -f */.deps/*.P config.cache + +path=`dirname $0` +. "$path/autorun.sh" + +# To compile 64 bit, add -xarch=amd64 to EXTRA_64_BIT +EXTRA_64_BIT="-xarch=amd64" + +# For "optimal" code for this computer add -fast to EXTRA. Note that +# this causes problem with debugging the program since -fast implies +# -xO5. +EXTRA="" + +# +# The following should not need to be touched +# + +export CC CXX CFLAGS CXXFLAGS +STD="-g -mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT $debug_cflags" +ASFLAGS="$EXTRA_64_BIT" +CC=cc-5.0 +CFLAGS="-Xa -xstrconst $STD" +CXX=CC +CXXFLAGS="-noex $STD" +./configure \ + --prefix=/usr/local/mysql \ + --localstatedir=/usr/local/mysql/data \ + --libexecdir=/usr/local/mysql/bin \ + --with-extra-charsets=complex \ + --enable-thread-safe-client \ + --enable-local-infile \ + --with-zlib-dir=bundled \ + --with-big-tables \ + --with-readline \ + --with-archive-storage-engine \ + --with-named-curses=-lcurses \ + --with-big-tables \ + --with-innodb \ + --with-example-storage-engine \ + --with-blackhole-storage-engine \ + --with-federated-storage-engine \ + --with-csv-storage-engine \ + --with-ssl \ + --with-debug \ + --enable-assembler + +# Not including: +# --with-ndbcluster +# --with-berkeley-db + +gmake -j4 diff --git a/CMakeLists.txt b/CMakeLists.txt index a06495021b3..341f8d08df2 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR) + PROJECT(MySql) # This reads user configuration, generated by configure.js. diff --git a/Docs/INSTALL-BINARY b/Docs/INSTALL-BINARY new file mode 100644 index 00000000000..ba7e72af94d --- /dev/null +++ b/Docs/INSTALL-BINARY @@ -0,0 +1,8 @@ + +You can find information about how to install binary distributions at + + http://dev.mysql.com/doc/refman/5.0/en/quick-standard-installation.html + +The MySQL Reference Manual is also available in various formats on +http://dev.mysql.com/doc; if you're interested in the DocBook XML +sources go to http://svn.mysql.com. diff --git a/Docs/Makefile.am b/Docs/Makefile.am index e57a1abcb0c..dac256f8fd6 100644 --- a/Docs/Makefile.am +++ b/Docs/Makefile.am @@ -13,14 +13,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -noinst_SCRIPTS = generate-text-files.pl - -EXTRA_DIST = $(noinst_SCRIPTS) manual.chm mysql.info INSTALL-BINARY - -TXT_FILES= ../INSTALL-SOURCE ../INSTALL-WIN-SOURCE \ - INSTALL-BINARY ../support-files/MacOSX/ReadMe.txt - -all-local: $(TXT_FILES) +EXTRA_DIST = mysql.info INSTALL-BINARY # make sure that "make install" installs the info page, too # automake only seems to take care of this automatically, @@ -32,38 +25,5 @@ install-data-hook: $(srcdir)/mysql.info uninstall-local: @RM@ -f $(DESTDIR)$(infodir)/mysql.info -# Problems with "make distclean", works differently for make files -# generated by different versions of the automake. Some require the -# generated files explicitly in DISTCLEANFILES. -DISTCLEANFILES = $(TXT_FILES) - -# This target is not used in builds, just for convinience -CLEAN_FILES: $(TXT_FILES) - touch $(TXT_FILES) - -GT = $(srcdir)/generate-text-files.pl - -../INSTALL-SOURCE: $(srcdir)/mysql.info $(GT) - perl -w $(GT) $(srcdir)/mysql.info "installing-source" "windows-source-build" > $@ - -../INSTALL-WIN-SOURCE: $(srcdir)/mysql.info $(GT) - perl -w $(GT) $(srcdir)/mysql.info "windows-source-build" "post-installation" > $@ - -# We put the description for the binary installation here so that -# people who download source wont have to see it. It is moved up to -# the toplevel by the script that makes the binary tar files. -INSTALL-BINARY: $(srcdir)/mysql.info $(GT) - perl -w $(GT) $(srcdir)/mysql.info "installing-binary" "installing-source" > $@ - -../support-files/MacOSX/ReadMe.txt: $(srcdir)/mysql.info $(GT) - perl -w $(GT) $(srcdir)/mysql.info "mac-os-x-installation" "netware-installation" > $@ - -# Include the Windows manual.chm in source .tar.gz only if available. -# It is not in BitKeeper, but is downloaded from intranet by Bootstrap. -dist-hook: - if [ -e $(srcdir)/manual.chm ] ; then \ - cp -f $(srcdir)/manual.chm $(distdir); \ - fi - # Don't update the files from bitkeeper %::SCCS/s.% diff --git a/Docs/generate-text-files.pl b/Docs/generate-text-files.pl deleted file mode 100755 index 69e0478eb8a..00000000000 --- a/Docs/generate-text-files.pl +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/perl -w -*- perl -*- -# Copyright (C) 2000, 2003, 2005 MySQL AB -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -# Generate text files from top directory from the manual. - -$from = shift(@ARGV); -$fnode = shift(@ARGV); -$tnode = shift(@ARGV); - -open(IN, "$from") || die "Cannot open $from: $!"; - -$in = 0; - -while (<IN>) -{ - if ($in) - { - if (/Node: $tnode,/ || /\[index/) - { - $in = 0; - } - elsif (/^File: mysql.info/ || (/^/)) - { - # Just Skip node beginnings - } - else - { - print; - } - } - else - { - if (/Node: $fnode,/) - { - $in = 1; - # Skip first empty line - <IN>; - } - } -} - -close(IN); - -die "Could not find node \"$tnode\"" if ($in == 1); -exit 0; diff --git a/Docs/manual.chm b/Docs/manual.chm deleted file mode 100644 index 28c3e1b5a86..00000000000 --- a/Docs/manual.chm +++ /dev/null @@ -1,14 +0,0 @@ - -********************************************************* - -This is a dummy placeholder file for "manual.chm" in the -MySQL source trees. - -Note, that the documentation has been moved into a separate -BitKeeper source tree named "mysqldoc" - do not attempt to edit this -file! All changes to it should be done in the mysqldoc tree. - -This dummy file is being replaced with the actual file from the -mysqldoc tree when building the official source distribution. - -********************************************************* diff --git a/Docs/mysql.info b/Docs/mysql.info index 5846d7aadf6..b2c411e51ab 100644 --- a/Docs/mysql.info +++ b/Docs/mysql.info @@ -1,27 +1,4 @@ -This is mysql.info, produced by makeinfo version 4.8 from manual.texi. -START-INFO-DIR-ENTRY -* mysql: (mysql). MySQL documentation. -END-INFO-DIR-ENTRY - - -File: mysql.info, Node: Top, Next: (dir), Prev: (dir), Up: (dir) - -This is an empty placeholder file for the MySQL manual. - -The MySQL manual is now maintained in a separate BitKeeper source tree! -Please see `http://www.mysql.com/doc/en/Installing_source_tree.html' -for more info on how to work with BitKeeper. - -This file will be replaced with the current `mysql.info' when building -the official source distribution. - -You can find a specific manual for any older version of MySQL in the -binary or source distribution for that version. - - - -Tag Table: -Node: Top166 - -End Tag Table +The MySQL Reference Manual is available in various formats on +http://dev.mysql.com/doc; if you're interested in the DocBook XML +sources go to http://svn.mysql.com. diff --git a/INSTALL-SOURCE b/INSTALL-SOURCE new file mode 100644 index 00000000000..3d9d7d41114 --- /dev/null +++ b/INSTALL-SOURCE @@ -0,0 +1,8 @@ + +You can find information about how to install from a source distributions at + + http://dev.mysql.com/doc/refman/5.0/en/installing-source.html + +The MySQL Reference Manual is also available in various formats on +http://dev.mysql.com/doc; if you're interested in the DocBook XML +sources go to http://svn.mysql.com. diff --git a/INSTALL-WIN-SOURCE b/INSTALL-WIN-SOURCE new file mode 100644 index 00000000000..2478e2cf609 --- /dev/null +++ b/INSTALL-WIN-SOURCE @@ -0,0 +1,9 @@ + +You can find information about how to install from a Windows source +distributions at + + http://dev.mysql.com/doc/refman/5.0/en/windows-source-build.html + +The MySQL Reference Manual is also available in various formats on +http://dev.mysql.com/doc; if you're interested in the DocBook XML +sources go to http://svn.mysql.com. diff --git a/client/mysql.cc b/client/mysql.cc index abb89fcf2e4..b102c80655a 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -144,6 +144,7 @@ static my_bool ignore_errors=0,wait_flag=0,quick=0, show_warnings= 0, executing_query= 0, interrupted_query= 0; static my_bool debug_info_flag, debug_check_flag; static my_bool column_types_flag; +static my_bool preserve_comments= 0; static ulong opt_max_allowed_packet, opt_net_buffer_length; static uint verbose=0,opt_silent=0,opt_mysql_port=0, opt_local_infile=0; static uint my_end_arg; @@ -778,6 +779,10 @@ static struct my_option my_long_options[] = {"show-warnings", OPT_SHOW_WARNINGS, "Show warnings after every statement.", (uchar**) &show_warnings, (uchar**) &show_warnings, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, + {"comments", 'c', "Preserve comments. Send comments to the server." + " Comments are discarded by default, enable with --enable-comments", + (uchar**) &preserve_comments, (uchar**) &preserve_comments, + 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; @@ -1165,10 +1170,6 @@ static int read_and_execute(bool interactive) status.exit_status=0; break; } - if (!in_string && (line[0] == '#' || - (line[0] == '-' && line[1] == '-') || - line[0] == 0)) - continue; // Skip comment lines /* Check if line is a mysql command line @@ -1294,15 +1295,21 @@ static bool add_line(String &buffer,char *line,char *in_string, for (pos=out=line ; (inchar= (uchar) *pos) ; pos++) { - if (my_isspace(charset_info,inchar) && out == line && - buffer.is_empty()) - continue; + if (!preserve_comments) + { + // Skip spaces at the beggining of a statement + if (my_isspace(charset_info,inchar) && (out == line) && + buffer.is_empty()) + continue; + } + #ifdef USE_MB + // Accept multi-byte characters as-is int length; if (use_mb(charset_info) && (length= my_ismbchar(charset_info, pos, end_of_line))) { - if (!*ml_comment) + if (!*ml_comment || preserve_comments) { while (length--) *out++ = *pos++; @@ -1328,8 +1335,13 @@ static bool add_line(String &buffer,char *line,char *in_string, } if ((com=find_command(NullS,(char) inchar))) { - const String tmp(line,(uint) (out-line), charset_info); - buffer.append(tmp); + // Flush previously accepted characters + if (out != line) + { + buffer.append(line, (uint) (out-line)); + out= line; + } + if ((*com->func)(&buffer,pos-1) > 0) DBUG_RETURN(1); // Quit if (com->takes_params) @@ -1357,7 +1369,6 @@ static bool add_line(String &buffer,char *line,char *in_string, pos+= delimiter_length - 1; // Point at last delim char } } - out=line; } else { @@ -1370,46 +1381,105 @@ static bool add_line(String &buffer,char *line,char *in_string, } } else if (!*ml_comment && !*in_string && - (*pos == *delimiter && is_prefix(pos + 1, delimiter + 1) || - buffer.length() == 0 && (out - line) >= 9 && - !my_strcasecmp(charset_info, line, "delimiter"))) - { - uint old_delimiter_length= delimiter_length; + strlen(pos) >= 10 && + !my_strnncoll(charset_info, (uchar*) pos, 10, + (const uchar*) "delimiter ", 10)) + { + // Flush previously accepted characters if (out != line) - buffer.append(line, (uint) (out - line)); // Add this line + { + buffer.append(line, (uint32) (out - line)); + out= line; + } + + // Flush possible comments in the buffer + if (!buffer.is_empty()) + { + if (com_go(&buffer, 0) > 0) // < 0 is not fatal + DBUG_RETURN(1); + buffer.length(0); + } + + /* + Delimiter wants the get rest of the given line as argument to + allow one to change ';' to ';;' and back + */ + buffer.append(pos); + if (com_delimiter(&buffer, pos) > 0) + DBUG_RETURN(1); + + buffer.length(0); + break; + } + else if (!*ml_comment && !*in_string && is_prefix(pos, delimiter)) + { + // Found a statement. Continue parsing after the delimiter + pos+= delimiter_length; + + if (preserve_comments) + { + while (my_isspace(charset_info, *pos)) + *out++= *pos++; + } + // Flush previously accepted characters + if (out != line) + { + buffer.append(line, (uint32) (out-line)); + out= line; + } + + if (preserve_comments && ((*pos == '#') || + ((*pos == '-') && + (pos[1] == '-') && + my_isspace(charset_info, pos[2])))) + { + // Add trailing single line comments to this statement + buffer.append(pos); + pos+= strlen(pos); + } + + pos--; + if ((com= find_command(buffer.c_ptr(), 0))) { - if (com->func == com_delimiter) - { - /* - Delimiter wants the get rest of the given line as argument to - allow one to change ';' to ';;' and back - */ - char *end= strend(pos); - buffer.append(pos, (uint) (end - pos)); - /* Ensure pos will point at \0 after the pos+= below */ - pos= end - old_delimiter_length + 1; - } - if ((*com->func)(&buffer, buffer.c_ptr()) > 0) - DBUG_RETURN(1); // Quit + + if ((*com->func)(&buffer, buffer.c_ptr()) > 0) + DBUG_RETURN(1); // Quit } else { - if (com_go(&buffer, 0) > 0) // < 0 is not fatal - DBUG_RETURN(1); + if (com_go(&buffer, 0) > 0) // < 0 is not fatal + DBUG_RETURN(1); } buffer.length(0); - out= line; - pos+= old_delimiter_length - 1; } else if (!*ml_comment && (!*in_string && (inchar == '#' || inchar == '-' && pos[1] == '-' && my_isspace(charset_info,pos[2])))) - break; // comment to end of line + { + // Flush previously accepted characters + if (out != line) + { + buffer.append(line, (uint32) (out - line)); + out= line; + } + + // comment to end of line + if (preserve_comments) + buffer.append(pos); + + break; + } else if (!*in_string && inchar == '/' && *(pos+1) == '*' && *(pos+2) != '!') { - pos++; + if (preserve_comments) + { + *out++= *pos++; // copy '/' + *out++= *pos; // copy '*' + } + else + pos++; *ml_comment= 1; if (out != line) { @@ -1419,8 +1489,21 @@ static bool add_line(String &buffer,char *line,char *in_string, } else if (*ml_comment && !ss_comment && inchar == '*' && *(pos + 1) == '/') { - pos++; + if (preserve_comments) + { + *out++= *pos++; // copy '*' + *out++= *pos; // copy '/' + } + else + pos++; *ml_comment= 0; + if (out != line) + { + buffer.append(line, (uint32) (out - line)); + out= line; + } + // Consumed a 2 chars or more, and will add 1 at most, + // so using the 'line' buffer to edit data in place is ok. need_space= 1; } else @@ -1435,14 +1518,12 @@ static bool add_line(String &buffer,char *line,char *in_string, else if (!*ml_comment && !*in_string && (inchar == '\'' || inchar == '"' || inchar == '`')) *in_string= (char) inchar; - if (!*ml_comment) + if (!*ml_comment || preserve_comments) { if (need_space && !my_isspace(charset_info, (char)inchar)) - { *out++= ' '; - need_space= 0; - } - *out++= (char) inchar; + need_space= 0; + *out++= (char) inchar; } } } @@ -1452,7 +1533,7 @@ static bool add_line(String &buffer,char *line,char *in_string, uint length=(uint) (out-line); if (buffer.length() + length >= buffer.alloced_length()) buffer.realloc(buffer.length()+length+IO_SIZE); - if (!(*ml_comment) && buffer.append(line,length)) + if ((!*ml_comment || preserve_comments) && buffer.append(line, length)) DBUG_RETURN(1); } DBUG_RETURN(0); @@ -2085,7 +2166,7 @@ com_go(String *buffer,char *line __attribute__((unused))) { char buff[200], time_buff[32], *pos; MYSQL_RES *result; - ulong timer, warnings; + ulong timer, warnings= 0; uint error= 0; int err= 0; @@ -2137,33 +2218,26 @@ com_go(String *buffer,char *line __attribute__((unused))) } #endif - if (error) - { - executing_query= 0; - buffer->length(0); // Remove query on error - return error; - } - error=0; buffer->length(0); + if (error) + goto end; + do { if (quick) { if (!(result=mysql_use_result(&mysql)) && mysql_field_count(&mysql)) { - executing_query= 0; - return put_error(&mysql); + error= put_error(&mysql); + goto end; } } else { error= mysql_store_result_for_lazy(&result); if (error) - { - executing_query= 0; - return error; - } + goto end; } if (verbose >= 3 || !opt_silent) @@ -2240,12 +2314,11 @@ com_go(String *buffer,char *line __attribute__((unused))) if (err >= 1) error= put_error(&mysql); - if (show_warnings == 1 && warnings >= 1) /* Show warnings if any */ - { - init_pager(); +end: + + /* Show warnings if any or error occured */ + if (show_warnings == 1 && (warnings >= 1 || error)) print_warnings(); - end_pager(); - } if (!error && !status.batch && (mysql.server_status & SERVER_STATUS_DB_DROPPED)) @@ -2377,6 +2450,7 @@ static char *fieldflags2str(uint f) { ff2s_check_flag(GROUP); ff2s_check_flag(UNIQUE); ff2s_check_flag(BINCMP); + ff2s_check_flag(ON_UPDATE_NOW); #undef ff2s_check_flag if (f) sprintf(s, " unknows=0x%04x", f); @@ -2669,6 +2743,9 @@ static void print_warnings() MYSQL_RES *result; MYSQL_ROW cur; my_ulonglong num_rows; + + /* Save current error before calling "show warnings" */ + uint error= mysql_errno(&mysql); /* Get the warnings */ query= "show warnings"; @@ -2677,16 +2754,28 @@ static void print_warnings() /* Bail out when no warnings */ if (!(num_rows= mysql_num_rows(result))) - { - mysql_free_result(result); - return; - } + goto end; + + cur= mysql_fetch_row(result); + + /* + Don't print a duplicate of the current error. It is possible for SHOW + WARNINGS to return multiple errors with the same code, but different + messages. To be safe, skip printing the duplicate only if it is the only + warning. + */ + if (!cur || num_rows == 1 && error == (uint) strtoul(cur[1], NULL, 10)) + goto end; /* Print the warnings */ - while ((cur= mysql_fetch_row(result))) + init_pager(); + do { tee_fprintf(PAGER, "%s (Code %s): %s\n", cur[0], cur[1], cur[2]); - } + } while ((cur= mysql_fetch_row(result))); + end_pager(); + +end: mysql_free_result(result); } diff --git a/client/mysqldump.c b/client/mysqldump.c index d504d177490..f5362b272cd 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -1040,8 +1040,10 @@ static int fetch_db_collation(const char *db_name, char query[QUERY_LENGTH]; MYSQL_RES *db_cl_res; MYSQL_ROW db_cl_row; + char quoted_database_buf[NAME_LEN*2+3]; + char *qdatabase= quote_name(db_name, quoted_database_buf, 1); - my_snprintf(query, sizeof (query), "use %s", db_name); + my_snprintf(query, sizeof (query), "use %s", qdatabase); if (mysql_query_with_error_report(mysql, NULL, query)) return 1; diff --git a/cmd-line-utils/readline/INSTALL b/cmd-line-utils/readline/INSTALL index cb4a06fb701..f360b9e7907 100644 --- a/cmd-line-utils/readline/INSTALL +++ b/cmd-line-utils/readline/INSTALL @@ -1,7 +1,7 @@ Basic Installation ================== -These are installation instructions for Readline-5.0. +These are installation instructions for Readline-5.2. The simplest way to compile readline is: @@ -238,6 +238,9 @@ SHLIB_XLDFLAGS Additional flags to pass to SHOBJ_LD for shared library SHLIB_LIBS Any additional libraries that shared libraries should be linked against when they are created. +SHLIB_LIBPREF The prefix to use when generating the filename of the shared + library. The default is `lib'; Cygwin uses `cyg'. + SHLIB_LIBSUFF The suffix to add to `libreadline' and `libhistory' when generating the filename of the shared library. Many systems use `so'; HP-UX uses `sl'. @@ -254,6 +257,17 @@ SHLIB_LIBVERSION The string to append to the filename to indicate the version numbers; use `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' on those systems. Other Unix versions use different schemes. +SHLIB_DLLVERSION The version number for shared libraries that determines API + compatibility between readline versions and the underlying + system. Used only on Cygwin. Defaults to $SHLIB_MAJOR, but + can be overridden at configuration time by defining DLLVERSION + in the environment. + +SHLIB_DOT The character used to separate the name of the shared library + from the suffix and version information. The default is `.'; + systems like Cygwin which don't separate version information + from the library name should set this to the empty string. + SHLIB_STATUS Set this to `supported' when you have defined the other necessary variables. Make uses this to determine whether or not shared library creation should be attempted. If diff --git a/cmd-line-utils/readline/README b/cmd-line-utils/readline/README index ac4e3a767f9..8da99626aa1 100644 --- a/cmd-line-utils/readline/README +++ b/cmd-line-utils/readline/README @@ -1,7 +1,7 @@ Introduction ============ -This is the Gnu Readline library, version 5.0. +This is the Gnu Readline library, version 5.2. The Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both @@ -102,6 +102,9 @@ SHLIB_XLDFLAGS Additional flags to pass to SHOBJ_LD for shared library SHLIB_LIBS Any additional libraries that shared libraries should be linked against when they are created. +SHLIB_LIBPREF The prefix to use when generating the filename of the shared + library. The default is `lib'; Cygwin uses `cyg'. + SHLIB_LIBSUFF The suffix to add to `libreadline' and `libhistory' when generating the filename of the shared library. Many systems use `so'; HP-UX uses `sl'. @@ -118,6 +121,17 @@ SHLIB_LIBVERSION The string to append to the filename to indicate the version numbers; use `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' on those systems. Other Unix versions use different schemes. +SHLIB_DLLVERSION The version number for shared libraries that determines API + compatibility between readline versions and the underlying + system. Used only on Cygwin. Defaults to $SHLIB_MAJOR, but + can be overridden at configuration time by defining DLLVERSION + in the environment. + +SHLIB_DOT The character used to separate the name of the shared library + from the suffix and version information. The default is `.'; + systems like Cygwin which don't separate version information + from the library name should set this to the empty string. + SHLIB_STATUS Set this to `supported' when you have defined the other necessary variables. Make uses this to determine whether or not shared library creation should be attempted. @@ -169,4 +183,4 @@ list (mirrored to the Usenet newsgroup gnu.bash.bug) often contains Readline bug reports and fixes. Chet Ramey -chet@po.cwru.edu +chet.ramey@case.edu diff --git a/cmd-line-utils/readline/bind.c b/cmd-line-utils/readline/bind.c index 568c3e8776a..08c906bfcc3 100644 --- a/cmd-line-utils/readline/bind.c +++ b/cmd-line-utils/readline/bind.c @@ -1,6 +1,6 @@ /* bind.c -- key binding and startup file support for the readline library. */ -/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1987-2006 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -26,7 +26,9 @@ # include <floss.h> #endif -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <stdio.h> #include <sys/types.h> @@ -75,6 +77,9 @@ static char *_rl_read_file PARAMS((char *, size_t *)); static void _rl_init_file_error PARAMS((const char *)); static int _rl_read_init_file PARAMS((const char *, int)); static int glean_key_from_name PARAMS((char *)); +static int find_boolean_var PARAMS((const char *)); + +static char *_rl_get_string_variable_value PARAMS((const char *)); static int substring_member_of_array PARAMS((char *, const char **)); static int currently_reading_init_file; @@ -337,10 +342,9 @@ rl_generic_bind (type, keyseq, data, map) KEYMAP_ENTRY k; k.function = 0; - k.type= 0; /* If no keys to bind to, exit right away. */ - if (!keyseq || !*keyseq) + if (keyseq == 0 || *keyseq == 0) { if (type == ISMACR) free (data); @@ -366,9 +370,12 @@ rl_generic_bind (type, keyseq, data, map) ic = uc; if (ic < 0 || ic >= KEYMAP_SIZE) - return -1; + { + free (keys); + return -1; + } - if (_rl_convert_meta_chars_to_ascii && META_CHAR (ic)) + if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii) { ic = UNMETA (ic); if (map[ESC].type == ISKMAP) @@ -435,7 +442,7 @@ rl_translate_keyseq (seq, array, len) { register int i, c, l, temp; - for (i = l = 0; (c = seq[i]); i++) + for (i = l = 0; c = seq[i]; i++) { if (c == '\\') { @@ -458,8 +465,24 @@ rl_translate_keyseq (seq, array, len) } else if (c == 'M') { - i++; - array[l++] = ESC; /* ESC is meta-prefix */ + i++; /* seq[i] == '-' */ + /* XXX - obey convert-meta setting */ + if (_rl_convert_meta_chars_to_ascii && _rl_keymap[ESC].type == ISKMAP) + array[l++] = ESC; /* ESC is meta-prefix */ + else if (seq[i+1] == '\\' && seq[i+2] == 'C' && seq[i+3] == '-') + { + i += 4; + temp = (seq[i] == '?') ? RUBOUT : CTRL (_rl_to_upper (seq[i])); + array[l++] = META (temp); + } + else + { + /* This doesn't yet handle things like \M-\a, which may + or may not have any reasonable meaning. You're + probably better off using straight octal or hex. */ + i++; + array[l++] = META (seq[i]); + } } else if (c == 'C') { @@ -554,6 +577,11 @@ rl_untranslate_keyseq (seq) kseq[i++] = '-'; c = UNMETA (c); } + else if (c == ESC) + { + kseq[i++] = '\\'; + c = 'e'; + } else if (CTRL_CHAR (c)) { kseq[i++] = '\\'; @@ -602,7 +630,12 @@ _rl_untranslate_macro_value (seq) *r++ = '-'; c = UNMETA (c); } - else if (CTRL_CHAR (c) && c != ESC) + else if (c == ESC) + { + *r++ = '\\'; + c = 'e'; + } + else if (CTRL_CHAR (c)) { *r++ = '\\'; *r++ = 'C'; @@ -661,7 +694,7 @@ rl_function_of_keyseq (keyseq, map, type) { register int i; - if (!map) + if (map == 0) map = _rl_keymap; for (i = 0; keyseq && keyseq[i]; i++) @@ -670,25 +703,27 @@ rl_function_of_keyseq (keyseq, map, type) if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii) { - if (map[ESC].type != ISKMAP) + if (map[ESC].type == ISKMAP) + { + map = FUNCTION_TO_KEYMAP (map, ESC); + ic = UNMETA (ic); + } + /* XXX - should we just return NULL here, since this obviously + doesn't match? */ + else { if (type) *type = map[ESC].type; return (map[ESC].function); } - else - { - map = FUNCTION_TO_KEYMAP (map, ESC); - ic = UNMETA (ic); - } } if (map[ic].type == ISKMAP) { /* If this is the last key in the key sequence, return the map. */ - if (!keyseq[i + 1]) + if (keyseq[i + 1] == '\0') { if (type) *type = ISKMAP; @@ -698,7 +733,12 @@ rl_function_of_keyseq (keyseq, map, type) else map = FUNCTION_TO_KEYMAP (map, ic); } - else + /* If we're not at the end of the key sequence, and the current key + is bound to something other than a keymap, then the entire key + sequence is not bound. */ + else if (map[ic].type != ISKMAP && keyseq[i+1]) + return ((rl_command_func_t *)NULL); + else /* map[ic].type != ISKMAP && keyseq[i+1] == 0 */ { if (type) *type = map[ic].type; @@ -736,8 +776,7 @@ _rl_read_file (filename, sizep) file_size = (size_t)finfo.st_size; /* check for overflow on very large files */ - if ((long long) file_size != (long long) finfo.st_size || - file_size + 1 < file_size) + if (file_size != finfo.st_size || file_size + 1 < file_size) { if (file >= 0) close (file); @@ -767,8 +806,8 @@ _rl_read_file (filename, sizep) /* Re-read the current keybindings file. */ int -rl_re_read_init_file (int count __attribute__((unused)), - int ignore __attribute__((unused))) +rl_re_read_init_file (count, ignore) + int count, ignore; { int r; r = rl_read_init_file ((const char *)NULL); @@ -781,6 +820,7 @@ rl_re_read_init_file (int count __attribute__((unused)), 1. the filename used for the previous call 2. the value of the shell variable `INPUTRC' 3. ~/.inputrc + 4. /etc/inputrc If the file existed and could be opened and read, 0 is returned, otherwise errno is returned. */ int @@ -789,17 +829,18 @@ rl_read_init_file (filename) { /* Default the filename. */ if (filename == 0) + filename = last_readline_init_file; + if (filename == 0) + filename = sh_get_env_value ("INPUTRC"); + if (filename == 0 || *filename == 0) { - filename = last_readline_init_file; - if (filename == 0) - filename = sh_get_env_value ("INPUTRC"); - if (filename == 0) - filename = DEFAULT_INPUTRC; + filename = DEFAULT_INPUTRC; + /* Try to read DEFAULT_INPUTRC; fall back to SYS_INPUTRC on failure */ + if (_rl_read_init_file (filename, 0) == 0) + return 0; + filename = SYS_INPUTRC; } - if (*filename == 0) - filename = DEFAULT_INPUTRC; - #if defined (__MSDOS__) if (_rl_read_init_file (filename, 0) == 0) return 0; @@ -989,7 +1030,8 @@ parser_if (args) /* Invert the current parser state if there is anything on the stack. */ static int -parser_else (char *args __attribute__((unused))) +parser_else (args) + char *args; { register int i; @@ -1019,7 +1061,8 @@ parser_else (char *args __attribute__((unused))) /* Terminate a conditional, popping the value of _rl_parsing_conditionalized_out from the stack. */ static int -parser_endif (char *args __attribute__((unused))) +parser_endif (args) + char *args; { if (if_stack_depth) _rl_parsing_conditionalized_out = if_stack[--if_stack_depth]; @@ -1142,7 +1185,7 @@ rl_parse_and_bind (string) { int passc = 0; - for (i = 1; (c = string[i]); i++) + for (i = 1; c = string[i]; i++) { if (passc) { @@ -1183,9 +1226,9 @@ rl_parse_and_bind (string) /* If this is a command to set a variable, then do that. */ if (_rl_stricmp (string, "set") == 0) { - char *var = string + i; - char *value; + char *var, *value, *e; + var = string + i; /* Make VAR point to start of variable name. */ while (*var && whitespace (*var)) var++; @@ -1196,6 +1239,20 @@ rl_parse_and_bind (string) *value++ = '\0'; while (*value && whitespace (*value)) value++; + /* Strip trailing whitespace from values to boolean variables. Temp + fix until I get a real quoted-string parser here. */ + i = find_boolean_var (var); + if (i >= 0) + { + /* remove trailing whitespace */ + e = value + strlen (value) - 1; + while (e >= value && whitespace (*e)) + e--; + e++; /* skip back to whitespace or EOS */ + if (*e && e >= value) + *e = '\0'; + } + rl_variable_bind (var, value); return 0; } @@ -1216,9 +1273,10 @@ rl_parse_and_bind (string) the quoted string delimiter, like the shell. */ if (*funname == '\'' || *funname == '"') { - int delimiter = string[i++], passc; + int delimiter, passc; - for (passc = 0; (c = string[i]); i++) + delimiter = string[i++]; + for (passc = 0; c = string[i]; i++) { if (passc) { @@ -1353,6 +1411,7 @@ static struct { int *value; int flags; } boolean_varlist [] = { + { "bind-tty-special-chars", &_rl_bind_stty_chars, 0 }, { "blink-matching-paren", &rl_blink_matching_paren, V_SPECIAL }, { "byte-oriented", &rl_byte_oriented, 0 }, { "completion-ignore-case", &_rl_completion_case_fold, 0 }, @@ -1377,7 +1436,7 @@ static struct { #if defined (VISIBLE_STATS) { "visible-stats", &rl_visible_stats, 0 }, #endif /* VISIBLE_STATS */ - { (char *)NULL, (int *)NULL, 0 } + { (char *)NULL, (int *)NULL } }; static int @@ -1446,7 +1505,7 @@ static struct { { "editing-mode", V_STRING, sv_editmode }, { "isearch-terminators", V_STRING, sv_isrchterm }, { "keymap", V_STRING, sv_keymap }, - { (char *)NULL, 0, 0 } + { (char *)NULL, 0 } }; static int @@ -1466,13 +1525,32 @@ find_string_var (name) values result in 0 (false). */ static int bool_to_int (value) -const char *value; + const char *value; { return (value == 0 || *value == '\0' || (_rl_stricmp (value, "on") == 0) || (value[0] == '1' && value[1] == '\0')); } +char * +rl_variable_value (name) + const char *name; +{ + register int i; + + /* Check for simple variables first. */ + i = find_boolean_var (name); + if (i >= 0) + return (*boolean_varlist[i].value ? "on" : "off"); + + i = find_string_var (name); + if (i >= 0) + return (_rl_get_string_variable_value (string_varlist[i].name)); + + /* Unknown variable names return NULL. */ + return 0; +} + int rl_variable_bind (name, value) const char *name, *value; @@ -1725,13 +1803,13 @@ char * rl_get_keymap_name_from_edit_mode () { if (rl_editing_mode == emacs_mode) - return (char*) "emacs"; + return "emacs"; #if defined (VI_MODE) else if (rl_editing_mode == vi_mode) - return (char*) "vi"; + return "vi"; #endif /* VI_MODE */ else - return (char*) "none"; + return "none"; } /* **************************************************************** */ @@ -1899,12 +1977,16 @@ rl_invoking_keyseqs_in_map (function, map) char *keyname = (char *)xmalloc (6 + strlen (seqs[i])); if (key == ESC) -#if 0 - sprintf (keyname, "\\e"); -#else - /* XXX - experimental */ - sprintf (keyname, "\\M-"); -#endif + { + /* If ESC is the meta prefix and we're converting chars + with the eighth bit set to ESC-prefixed sequences, then + we can use \M-. Otherwise we need to use the sequence + for ESC. */ + if (_rl_convert_meta_chars_to_ascii && map[ESC].type == ISKMAP) + sprintf (keyname, "\\M-"); + else + sprintf (keyname, "\\e"); + } else if (CTRL_CHAR (key)) sprintf (keyname, "\\C-%c", _rl_to_lower (UNCTRL (key))); else if (key == RUBOUT) @@ -1966,7 +2048,7 @@ rl_function_dumper (print_readably) fprintf (rl_outstream, "\n"); - for (i = 0; (name = names[i]); i++) + for (i = 0; name = names[i]; i++) { rl_command_func_t *function; char **invokers; @@ -2025,8 +2107,8 @@ rl_function_dumper (print_readably) rl_outstream. If an explicit argument is given, then print the output in such a way that it can be read back in. */ int -rl_dump_functions (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_dump_functions (count, key) + int count, key; { if (rl_dispatching) fprintf (rl_outstream, "\r\n"); @@ -2105,7 +2187,8 @@ rl_macro_dumper (print_readably) } int -rl_dump_macros(int count __attribute__((unused)), int key __attribute__((unused))) +rl_dump_macros (count, key) + int count, key; { if (rl_dispatching) fprintf (rl_outstream, "\r\n"); @@ -2114,12 +2197,67 @@ rl_dump_macros(int count __attribute__((unused)), int key __attribute__((unused) return (0); } +static char * +_rl_get_string_variable_value (name) + const char *name; +{ + static char numbuf[32]; + char *ret; + + if (_rl_stricmp (name, "bell-style") == 0) + { + switch (_rl_bell_preference) + { + case NO_BELL: + return "none"; + case VISIBLE_BELL: + return "visible"; + case AUDIBLE_BELL: + default: + return "audible"; + } + } + else if (_rl_stricmp (name, "comment-begin") == 0) + return (_rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT); + else if (_rl_stricmp (name, "completion-query-items") == 0) + { + sprintf (numbuf, "%d", rl_completion_query_items); + return (numbuf); + } + else if (_rl_stricmp (name, "editing-mode") == 0) + return (rl_get_keymap_name_from_edit_mode ()); + else if (_rl_stricmp (name, "isearch-terminators") == 0) + { + if (_rl_isearch_terminators == 0) + return 0; + ret = _rl_untranslate_macro_value (_rl_isearch_terminators); + if (ret) + { + strncpy (numbuf, ret, sizeof (numbuf) - 1); + free (ret); + numbuf[sizeof(numbuf) - 1] = '\0'; + } + else + numbuf[0] = '\0'; + return numbuf; + } + else if (_rl_stricmp (name, "keymap") == 0) + { + ret = rl_get_keymap_name (_rl_keymap); + if (ret == 0) + ret = rl_get_keymap_name_from_edit_mode (); + return (ret ? ret : "none"); + } + else + return (0); +} + void rl_variable_dumper (print_readably) int print_readably; { int i; - const char *kname; + char *v; for (i = 0; boolean_varlist[i].name; i++) { @@ -2131,70 +2269,24 @@ rl_variable_dumper (print_readably) *boolean_varlist[i].value ? "on" : "off"); } - /* bell-style */ - switch (_rl_bell_preference) - { - case NO_BELL: - kname = "none"; break; - case VISIBLE_BELL: - kname = "visible"; break; - case AUDIBLE_BELL: - default: - kname = "audible"; break; - } - if (print_readably) - fprintf (rl_outstream, "set bell-style %s\n", kname); - else - fprintf (rl_outstream, "bell-style is set to `%s'\n", kname); - - /* comment-begin */ - if (print_readably) - fprintf (rl_outstream, "set comment-begin %s\n", _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT); - else - fprintf (rl_outstream, "comment-begin is set to `%s'\n", _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT); - - /* completion-query-items */ - if (print_readably) - fprintf (rl_outstream, "set completion-query-items %d\n", rl_completion_query_items); - else - fprintf (rl_outstream, "completion-query-items is set to `%d'\n", rl_completion_query_items); - - /* editing-mode */ - if (print_readably) - fprintf (rl_outstream, "set editing-mode %s\n", (rl_editing_mode == emacs_mode) ? "emacs" : "vi"); - else - fprintf (rl_outstream, "editing-mode is set to `%s'\n", (rl_editing_mode == emacs_mode) ? "emacs" : "vi"); - - /* isearch-terminators */ - if (_rl_isearch_terminators) + for (i = 0; string_varlist[i].name; i++) { - char *disp; - - disp = _rl_untranslate_macro_value (_rl_isearch_terminators); - + v = _rl_get_string_variable_value (string_varlist[i].name); + if (v == 0) /* _rl_isearch_terminators can be NULL */ + continue; if (print_readably) - fprintf (rl_outstream, "set isearch-terminators \"%s\"\n", disp); + fprintf (rl_outstream, "set %s %s\n", string_varlist[i].name, v); else - fprintf (rl_outstream, "isearch-terminators is set to \"%s\"\n", disp); - - free (disp); + fprintf (rl_outstream, "%s is set to `%s'\n", string_varlist[i].name, v); } - - /* keymap */ - kname = rl_get_keymap_name (_rl_keymap); - if (kname == 0) - kname = rl_get_keymap_name_from_edit_mode (); - if (print_readably) - fprintf (rl_outstream, "set keymap %s\n", kname ? kname : "none"); - else - fprintf (rl_outstream, "keymap is set to `%s'\n", kname ? kname : "none"); } /* Print all of the current variables and their values to rl_outstream. If an explicit argument is given, then print the output in such a way that it can be read back in. */ int -rl_dump_variables(int count __attribute__((unused)), int key __attribute__((unused))) +rl_dump_variables (count, key) + int count, key; { if (rl_dispatching) fprintf (rl_outstream, "\r\n"); diff --git a/cmd-line-utils/readline/callback.c b/cmd-line-utils/readline/callback.c index 0807f137b92..ada04d8593b 100644 --- a/cmd-line-utils/readline/callback.c +++ b/cmd-line-utils/readline/callback.c @@ -1,6 +1,6 @@ /* callback.c -- functions to use readline as an X `callback' mechanism. */ -/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include "rlconf.h" @@ -41,10 +43,16 @@ #include "rldefs.h" #include "readline.h" #include "rlprivate.h" +#include "xmalloc.h" + +/* Private data for callback registration functions. See comments in + rl_callback_read_char for more details. */ +_rl_callback_func_t *_rl_callback_func = 0; +_rl_callback_generic_arg *_rl_callback_data = 0; /* **************************************************************** */ /* */ -/* Callback Readline Functions */ +/* Callback Readline Functions */ /* */ /* **************************************************************** */ @@ -70,7 +78,8 @@ _rl_callback_newline () { in_handler = 1; - (*rl_prep_term_function) (_rl_meta_flag); + if (rl_prep_term_function) + (*rl_prep_term_function) (_rl_meta_flag); #if defined (HANDLE_SIGNALS) rl_set_signals (); @@ -87,6 +96,7 @@ rl_callback_handler_install (prompt, linefunc) rl_vcpfunc_t *linefunc; { rl_set_prompt (prompt); + RL_SETSTATE (RL_STATE_CALLBACK); rl_linefunc = linefunc; _rl_callback_newline (); } @@ -96,7 +106,8 @@ void rl_callback_read_char () { char *line; - int eof; + int eof, jcode; + static procenv_t olevel; if (rl_linefunc == NULL) { @@ -104,16 +115,89 @@ rl_callback_read_char () abort (); } - eof = readline_internal_char (); + memcpy ((void *)olevel, (void *)readline_top_level, sizeof (procenv_t)); + jcode = setjmp (readline_top_level); + if (jcode) + { + (*rl_redisplay_function) (); + _rl_want_redisplay = 0; + memcpy ((void *)readline_top_level, (void *)olevel, sizeof (procenv_t)); + return; + } - /* We loop in case some function has pushed input back with rl_execute_next. */ - for (;;) + do { + if (RL_ISSTATE (RL_STATE_ISEARCH)) + { + eof = _rl_isearch_callback (_rl_iscxt); + if (eof == 0 && (RL_ISSTATE (RL_STATE_ISEARCH) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING)) + rl_callback_read_char (); + + return; + } + else if (RL_ISSTATE (RL_STATE_NSEARCH)) + { + eof = _rl_nsearch_callback (_rl_nscxt); + return; + } + else if (RL_ISSTATE (RL_STATE_NUMERICARG)) + { + eof = _rl_arg_callback (_rl_argcxt); + if (eof == 0 && (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING)) + rl_callback_read_char (); + /* XXX - this should handle _rl_last_command_was_kill better */ + else if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) + _rl_internal_char_cleanup (); + + return; + } + else if (RL_ISSTATE (RL_STATE_MULTIKEY)) + { + eof = _rl_dispatch_callback (_rl_kscxt); /* For now */ + while ((eof == -1 || eof == -2) && RL_ISSTATE (RL_STATE_MULTIKEY) && _rl_kscxt && (_rl_kscxt->flags & KSEQ_DISPATCHED)) + eof = _rl_dispatch_callback (_rl_kscxt); + if (RL_ISSTATE (RL_STATE_MULTIKEY) == 0) + { + _rl_internal_char_cleanup (); + _rl_want_redisplay = 1; + } + } + else if (_rl_callback_func) + { + /* This allows functions that simply need to read an additional + character (like quoted-insert) to register a function to be + called when input is available. _rl_callback_data is simply a + pointer to a struct that has the argument count originally + passed to the registering function and space for any additional + parameters. */ + eof = (*_rl_callback_func) (_rl_callback_data); + /* If the function `deregisters' itself, make sure the data is + cleaned up. */ + if (_rl_callback_func == 0) + { + if (_rl_callback_data) + { + _rl_callback_data_dispose (_rl_callback_data); + _rl_callback_data = 0; + } + _rl_internal_char_cleanup (); + } + } + else + eof = readline_internal_char (); + + if (rl_done == 0 && _rl_want_redisplay) + { + (*rl_redisplay_function) (); + _rl_want_redisplay = 0; + } + if (rl_done) { line = readline_internal_teardown (eof); - (*rl_deprep_term_function) (); + if (rl_deprep_term_function) + (*rl_deprep_term_function) (); #if defined (HANDLE_SIGNALS) rl_clear_signals (); #endif @@ -129,11 +213,8 @@ rl_callback_read_char () if (in_handler == 0 && rl_linefunc) _rl_callback_newline (); } - if (rl_pending_input || _rl_pushed_input_available ()) - eof = readline_internal_char (); - else - break; } + while (rl_pending_input || _rl_pushed_input_available () || RL_ISSTATE (RL_STATE_MACROINPUT)); } /* Remove the handler, and make sure the terminal is in its normal state. */ @@ -141,14 +222,37 @@ void rl_callback_handler_remove () { rl_linefunc = NULL; + RL_UNSETSTATE (RL_STATE_CALLBACK); if (in_handler) { in_handler = 0; - (*rl_deprep_term_function) (); + if (rl_deprep_term_function) + (*rl_deprep_term_function) (); #if defined (HANDLE_SIGNALS) rl_clear_signals (); #endif } } +_rl_callback_generic_arg * +_rl_callback_data_alloc (count) + int count; +{ + _rl_callback_generic_arg *arg; + + arg = (_rl_callback_generic_arg *)xmalloc (sizeof (_rl_callback_generic_arg)); + arg->count = count; + + arg->i1 = arg->i2 = 0; + + return arg; +} + +void _rl_callback_data_dispose (arg) + _rl_callback_generic_arg *arg; +{ + if (arg) + free (arg); +} + #endif diff --git a/cmd-line-utils/readline/chardefs.h b/cmd-line-utils/readline/chardefs.h index 04a3b7a8e9c..def3a111bd3 100644 --- a/cmd-line-utils/readline/chardefs.h +++ b/cmd-line-utils/readline/chardefs.h @@ -59,11 +59,7 @@ #define largest_char 255 /* Largest character value. */ #define CTRL_CHAR(c) ((c) < control_character_threshold && (((c) & 0x80) == 0)) -#if largest_char >= 255 -#define META_CHAR(c) ((c) > meta_character_threshold) -#else #define META_CHAR(c) ((c) > meta_character_threshold && (c) <= largest_char) -#endif #define CTRL(c) ((c) & control_character_mask) #define META(c) ((c) | meta_character_bit) @@ -90,6 +86,8 @@ /* Some systems define these; we want our definitions. */ #undef ISPRINT +/* Beware: these only work with single-byte ASCII characters. */ + #define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (c)) #define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c)) #define ISDIGIT(c) (IN_CTYPE_DOMAIN (c) && isdigit (c)) diff --git a/cmd-line-utils/readline/compat.c b/cmd-line-utils/readline/compat.c index e4fbc322cee..a66d210fd2e 100644 --- a/cmd-line-utils/readline/compat.c +++ b/cmd-line-utils/readline/compat.c @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <stdio.h> diff --git a/cmd-line-utils/readline/complete.c b/cmd-line-utils/readline/complete.c index 526c1edb33d..a0232b2afdf 100644 --- a/cmd-line-utils/readline/complete.c +++ b/cmd-line-utils/readline/complete.c @@ -1,6 +1,6 @@ /* complete.c -- filename completion for readline. */ -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -21,18 +21,12 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) -#define _XOPEN_SOURCE 500 +#if defined (HAVE_CONFIG_H) +# include <config.h> #endif -#include "config_readline.h" - #include <sys/types.h> - -/* To get SuSE 9.3 to define wcwidth() (in wchar.h) */ - #include <fcntl.h> - /* FreeBSD 5.3 will not declare u_int in sys/types.h, file.h needs it */ #if defined (HAVE_SYS_FILE_H) && !defined(__FreeBSD__) # include <sys/file.h> @@ -55,7 +49,9 @@ extern int errno; #endif /* !errno */ +#if defined (HAVE_PWD_H) #include <pwd.h> +#endif #include "posixdir.h" #include "posixstat.h" @@ -86,9 +82,9 @@ typedef int QSFUNC (); /* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is defined. */ -#if !defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE) +#if defined (HAVE_GETPWENT) && (!defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE)) extern struct passwd *getpwent PARAMS((void)); -#endif /* !HAVE_GETPW_DECLS || _POSIX_SOURCE */ +#endif /* HAVE_GETPWENT && (!HAVE_GETPW_DECLS || _POSIX_SOURCE) */ /* If non-zero, then this is the address of a function to call when completing a word would normally display the list of possible matches. @@ -213,7 +209,8 @@ int rl_completion_type = 0; /* Up to this many items will be displayed in response to a possible-completions call. After that, we ask the user if - she is sure she wants to see them all. */ + she is sure she wants to see them all. A negative value means + don't ask. */ int rl_completion_query_items = 100; int _rl_page_completions = 1; @@ -361,15 +358,15 @@ rl_complete (ignore, invoking_key) /* List the possible completions. See description of rl_complete (). */ int -rl_possible_completions (int ignore __attribute__((unused)), - int invoking_key __attribute__((unused))) +rl_possible_completions (ignore, invoking_key) + int ignore, invoking_key; { return (rl_complete_internal ('?')); } int -rl_insert_completions (int ignore __attribute__((unused)), - int invoking_key __attribute__((unused))) +rl_insert_completions (ignore, invoking_key) + int ignore, invoking_key; { return (rl_complete_internal ('*')); } @@ -628,6 +625,8 @@ fnprint (to_print) mbstate_t ps; const char *end; size_t tlen; + int width, w; + wchar_t wc; end = to_print + strlen (to_print) + 1; memset (&ps, 0, sizeof (mbstate_t)); @@ -660,21 +659,28 @@ fnprint (to_print) else { #if defined (HANDLE_MULTIBYTE) - tlen = mbrlen (s, end - s, &ps); + tlen = mbrtowc (&wc, s, end - s, &ps); if (MB_INVALIDCH (tlen)) { tlen = 1; + width = 1; memset (&ps, 0, sizeof (mbstate_t)); } else if (MB_NULLWCH (tlen)) break; + else + { + w = wcwidth (wc); + width = (w >= 0) ? w : 1; + } fwrite (s, 1, tlen, rl_outstream); s += tlen; + printed_len += width; #else putc (*s, rl_outstream); s++; -#endif printed_len++; +#endif } } @@ -690,7 +696,7 @@ print_filename (to_print, full_pathname) char *to_print, *full_pathname; { int printed_len, extension_char, slen, tlen; - char *s, c, *new_full_pathname; + char *s, c, *new_full_pathname, *dn; extension_char = 0; printed_len = fnprint (to_print); @@ -715,7 +721,17 @@ print_filename (to_print, full_pathname) files in the root directory. If we pass a null string to the bash directory completion hook, for example, it will expand it to the current directory. We just want the `/'. */ - s = tilde_expand (full_pathname && *full_pathname ? full_pathname : "/"); + if (full_pathname == 0 || *full_pathname == 0) + dn = "/"; + else if (full_pathname[0] != '/') + dn = full_pathname; + else if (full_pathname[1] == 0) + dn = "//"; /* restore trailing slash to `//' */ + else if (full_pathname[1] == '/' && full_pathname[2] == 0) + dn = "/"; /* don't turn /// into // */ + else + dn = full_pathname; + s = tilde_expand (dn); if (rl_directory_completion_hook) (*rl_directory_completion_hook) (&s); @@ -723,6 +739,10 @@ print_filename (to_print, full_pathname) tlen = strlen (to_print); new_full_pathname = (char *)xmalloc (slen + tlen + 2); strcpy (new_full_pathname, s); + if (s[slen - 1] == '/') + slen--; + else + new_full_pathname[slen] = '/'; new_full_pathname[slen] = '/'; strcpy (new_full_pathname + slen + 1, to_print); @@ -761,7 +781,10 @@ print_filename (to_print, full_pathname) } static char * -rl_quote_filename (char *s, int rtype __attribute__((unused)), char *qcp) +rl_quote_filename (s, rtype, qcp) + char *s; + int rtype; + char *qcp; { char *r; @@ -811,14 +834,7 @@ _rl_find_completion_word (fp, dp) quote substrings for the completer. Try to find the start of an unclosed quoted substring. */ /* FOUND_QUOTE is set so we know what kind of quotes we found. */ -#if defined (HANDLE_MULTIBYTE) - for (scan = pass_next = 0; scan < end; - scan = ((MB_CUR_MAX == 1 || rl_byte_oriented) - ? (scan + 1) - : _rl_find_next_mbchar (rl_line_buffer, scan, 1, MB_FIND_ANY))) -#else - for (scan = pass_next = 0; scan < end; scan++) -#endif + for (scan = pass_next = 0; scan < end; scan = MB_NEXTCHAR (rl_line_buffer, scan, 1, MB_FIND_ANY)) { if (pass_next) { @@ -868,11 +884,7 @@ _rl_find_completion_word (fp, dp) /* We didn't find an unclosed quoted substring upon which to do completion, so use the word break characters to find the substring on which to complete. */ -#if defined (HANDLE_MULTIBYTE) - while ((rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_ANY))) -#else - while (--rl_point) -#endif + while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY)) { scan = rl_line_buffer[rl_point]; @@ -939,7 +951,7 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char) rl_compentry_func_t *our_func; int found_quote, quote_char; { - char **matches, *temp; + char **matches; rl_completion_found_quote = found_quote; rl_completion_quote_character = quote_char; @@ -958,21 +970,9 @@ gen_completion_matches (text, start, end, our_func, found_quote, quote_char) } } - /* Beware -- we're stripping the quotes here. Do this only if we know - we are doing filename completion and the application has defined a - filename dequoting function. */ - temp = (char *)NULL; - - if (found_quote && our_func == rl_filename_completion_function && - rl_filename_dequoting_function) - { - /* delete single and double quotes */ - temp = (*rl_filename_dequoting_function) (text, quote_char); - text = temp; /* not freeing text is not a memory leak */ - } + /* XXX -- filename dequoting moved into rl_filename_completion_function */ matches = rl_completion_matches (text, our_func); - FREE (temp); return matches; } @@ -1105,7 +1105,8 @@ compute_lcd_of_matches (match_list, matches, text) #if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { - mbstate_t ps_back = ps1; + mbstate_t ps_back; + ps_back = ps1; if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2)) break; else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1) @@ -1155,8 +1156,7 @@ compute_lcd_of_matches (match_list, matches, text) rl_completion_found_quote && rl_filename_quoting_desired) { - dtext = (*rl_filename_dequoting_function) - ((char*) text, rl_completion_quote_character); + dtext = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); text = dtext; } @@ -1402,7 +1402,7 @@ display_matches (matches) /* If there are many items, then ask the user if she really wants to see them all. */ - if (len >= rl_completion_query_items) + if (rl_completion_query_items > 0 && len >= rl_completion_query_items) { rl_crlf (); fprintf (rl_outstream, "Display all %d possibilities? (y or n)", len); @@ -1539,7 +1539,7 @@ append_to_match (text, delimiter, quote_char, nontrivial_match) : stat (filename, &finfo); if (s == 0 && S_ISDIR (finfo.st_mode)) { - if (_rl_complete_mark_directories) + if (_rl_complete_mark_directories /* && rl_completion_suppress_append == 0 */) { /* This is clumsy. Avoid putting in a double slash if point is at the end of the line and the previous character is a @@ -1803,7 +1803,7 @@ rl_completion_matches (text, entry_function) match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *)); match_list[1] = (char *)NULL; - while ((string = (*entry_function) (text, matches))) + while (string = (*entry_function) (text, matches)) { if (matches + 1 == match_list_size) match_list = (char **)xrealloc @@ -1853,16 +1853,20 @@ rl_username_completion_function (text, state) setpwent (); } - while ((entry = getpwent ())) +#if defined (HAVE_GETPWENT) + while (entry = getpwent ()) { /* Null usernames should result in all users as possible completions. */ if (namelen == 0 || (STREQN (username, entry->pw_name, namelen))) break; } +#endif if (entry == 0) { +#if defined (HAVE_GETPWENT) endpwent (); +#endif return ((char *)NULL); } else @@ -1960,13 +1964,30 @@ rl_filename_completion_function (text, state) if (rl_directory_rewrite_hook) (*rl_directory_rewrite_hook) (&dirname); + /* The directory completion hook should perform any necessary + dequoting. */ if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname)) { free (users_dirname); users_dirname = savestring (dirname); } - + else if (rl_completion_found_quote && rl_filename_dequoting_function) + { + /* delete single and double quotes */ + temp = (*rl_filename_dequoting_function) (users_dirname, rl_completion_quote_character); + free (users_dirname); + users_dirname = temp; + } directory = opendir (dirname); + + /* Now dequote a non-null filename. */ + if (filename && *filename && rl_completion_found_quote && rl_filename_dequoting_function) + { + /* delete single and double quotes */ + temp = (*rl_filename_dequoting_function) (filename, rl_completion_quote_character); + free (filename); + filename = temp; + } filename_len = strlen (filename); rl_filename_completion_desired = 1; @@ -2089,7 +2110,8 @@ rl_filename_completion_function (text, state) hit the end of the match list, we restore the original unmatched text, ring the bell, and reset the counter to zero. */ int -rl_menu_complete (int count, int ignore __attribute__((unused))) +rl_menu_complete (count, ignore) + int count, ignore; { rl_compentry_func_t *our_func; int matching_filenames, found_quote; @@ -2173,9 +2195,11 @@ rl_menu_complete (int count, int ignore __attribute__((unused))) return (0); } - match_list_index = (match_list_index + count) % match_list_size; + match_list_index += count; if (match_list_index < 0) match_list_index += match_list_size; + else + match_list_index %= match_list_size; if (match_list_index == 0 && match_list_size > 1) { diff --git a/cmd-line-utils/readline/configure.in b/cmd-line-utils/readline/configure.in index 31e17606024..868773be696 100644 --- a/cmd-line-utils/readline/configure.in +++ b/cmd-line-utils/readline/configure.in @@ -4,9 +4,27 @@ dnl dnl report bugs to chet@po.cwru.edu dnl dnl Process this file with autoconf to produce a configure script. -AC_REVISION([for Readline 5.0, version 2.52, from autoconf version] AC_ACVERSION) -AC_INIT(readline, 5.0-rc1, bug-readline@gnu.org) +# Copyright (C) 1987-2005 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +AC_REVISION([for Readline 5.2, version 2.61]) + +AC_INIT(readline, 5.2, bug-readline@gnu.org) dnl make sure we are using a recent autoconf version AC_PREREQ(2.50) @@ -16,20 +34,28 @@ AC_CONFIG_AUX_DIR(./support) AC_CONFIG_HEADERS(config.h) dnl update the value of RL_READLINE_VERSION in readline.h when this changes -LIBVERSION=5.0 +LIBVERSION=5.2 AC_CANONICAL_HOST dnl configure defaults opt_curses=no +opt_purify=no dnl arguments to configure AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval) +AC_ARG_WITH(purify, AC_HELP_STRING([--with-purify], [configure to postprocess with purify]), opt_purify=$withval) if test "$opt_curses" = "yes"; then prefer_curses=yes fi +if test "$opt_purify" = yes; then + PURIFY="purify" +else + PURIFY= +fi + dnl option parsing for optional features opt_multibyte=yes opt_static_libs=yes @@ -43,6 +69,36 @@ if test $opt_multibyte = no; then AC_DEFINE(NO_MULTIBYTE_SUPPORT) fi +dnl load up the cross-building cache file -- add more cases and cache +dnl files as necessary + +dnl Note that host and target machine are the same, and different than the +dnl build machine. + +CROSS_COMPILE= +if test "x$cross_compiling" = "xyes"; then + case "${host}" in + *-cygwin*) + cross_cache=${srcdir}/cross-build/cygwin.cache + ;; + *-mingw*) + cross_cache=${srcdir}/cross-build/mingw.cache + ;; + i[[3456]]86-*-beos*) + cross_cache=${srcdir}/cross-build/x86-beos.cache + ;; + *) echo "configure: cross-compiling for $host is not supported" >&2 + ;; + esac + if test -n "${cross_cache}" && test -r "${cross_cache}"; then + echo "loading cross-build cache file ${cross_cache}" + . ${cross_cache} + fi + unset cross_cache + CROSS_COMPILE='-DCROSS_COMPILING' + AC_SUBST(CROSS_COMPILE) +fi + echo "" echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}" echo "" @@ -83,14 +139,24 @@ AC_HEADER_STDC AC_HEADER_STAT AC_HEADER_DIRENT -AC_CHECK_FUNCS(lstat memmove putenv select setenv setlocale \ - strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit) +AC_CHECK_FUNCS(fcntl kill lstat) +AC_CHECK_FUNCS(memmove putenv select setenv setlocale \ + strcasecmp strpbrk tcgetattr vsnprintf) +AC_CHECK_FUNCS(isascii isxdigit) +AC_CHECK_FUNCS(getpwent getpwnam getpwuid) AC_FUNC_STRCOLL -AC_CHECK_HEADERS(unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \ - limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \ - termcap.h termios.h termio.h sys/file.h locale.h memory.h ) +AC_CHECK_HEADERS(fcntl.h unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \ + limits.h locale.h pwd.h memory.h termcap.h termios.h termio.h) +AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h) + +AC_CHECK_HEADERS(sys/ptem.h,,, +[[ +#if HAVE_SYS_STREAM_H +# include <sys/stream.h> +#endif +]]) BASH_SYS_SIGNAL_VINTAGE BASH_SYS_REINSTALL_SIGHANDLERS @@ -143,7 +209,13 @@ esac # if test -f ${srcdir}/support/shobj-conf; then AC_MSG_CHECKING(configuration for building shared libraries) - eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}` + eval `TERMCAP_LIB=$TERMCAP_LIB ${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}` + +# case "$SHLIB_LIBS" in +# *curses*|*termcap*|*termlib*) ;; +# *) SHLIB_LIBS="$SHLIB_LIBS $TERMCAP_LIB" ;; +# esac + AC_SUBST(SHOBJ_CC) AC_SUBST(SHOBJ_CFLAGS) AC_SUBST(SHOBJ_LD) @@ -153,8 +225,11 @@ if test -f ${srcdir}/support/shobj-conf; then AC_SUBST(SHOBJ_STATUS) AC_SUBST(SHLIB_STATUS) AC_SUBST(SHLIB_XLDFLAGS) + AC_SUBST(SHLIB_DOT) + AC_SUBST(SHLIB_LIBPREF) AC_SUBST(SHLIB_LIBSUFF) AC_SUBST(SHLIB_LIBVERSION) + AC_SUBST(SHLIB_DLLVERSION) AC_SUBST(SHLIB_LIBS) AC_MSG_RESULT($SHLIB_STATUS) @@ -191,6 +266,12 @@ msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file *) BUILD_DIR=`pwd` ;; esac +case "$BUILD_DIR" in +*\ *) BUILD_DIR=`echo "$BUILD_DIR" | sed 's: :\\\\ :g'` ;; +*) ;; +esac + +AC_SUBST(PURIFY) AC_SUBST(BUILD_DIR) AC_SUBST(CFLAGS) diff --git a/cmd-line-utils/readline/display.c b/cmd-line-utils/readline/display.c index 06cac3bfd32..47ff0615974 100644 --- a/cmd-line-utils/readline/display.c +++ b/cmd-line-utils/readline/display.c @@ -1,6 +1,6 @@ /* display.c -- readline redisplay facility. */ -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. +/* Copyright (C) 1987-2006 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -21,16 +21,12 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#ifndef _XOPEN_SOURCE -#define _XOPEN_SOURCE 500 +#if defined (HAVE_CONFIG_H) +# include <config.h> #endif -#include "config_readline.h" - #include <sys/types.h> -/* To get SuSE 9.3 to define wcwidth() (in wchar.h) */ - #if defined (HAVE_UNISTD_H) # include <unistd.h> #endif /* HAVE_UNISTD_H */ @@ -63,10 +59,6 @@ extern char *strchr (), *strrchr (); #endif /* !strchr && !__STDC__ */ -#if defined (HACK_TERMCAP_MOTION) -extern char *_rl_term_forward_char; -#endif - static void update_line PARAMS((char *, char *, int, int, int, int)); static void space_to_eol PARAMS((int)); static void delete_chars PARAMS((int)); @@ -84,9 +76,18 @@ static int *inv_lbreaks, *vis_lbreaks; static int inv_lbsize, vis_lbsize; /* Heuristic used to decide whether it is faster to move from CUR to NEW - by backing up or outputting a carriage return and moving forward. */ + by backing up or outputting a carriage return and moving forward. CUR + and NEW are either both buffer positions or absolute screen positions. */ #define CR_FASTER(new, cur) (((new) + 1) < ((cur) - (new))) +/* _rl_last_c_pos is an absolute cursor position in multibyte locales and a + buffer index in others. This macro is used when deciding whether the + current cursor position is in the middle of a prompt string containing + invisible characters. */ +#define PROMPT_ENDING_INDEX \ + ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) ? prompt_physical_chars : prompt_last_invisible+1) + + /* **************************************************************** */ /* */ /* Display stuff */ @@ -122,16 +123,25 @@ rl_voidfunc_t *rl_redisplay_function = rl_redisplay; int rl_display_fixed = 0; int _rl_suppress_redisplay = 0; +int _rl_want_redisplay = 0; /* The stuff that gets printed out before the actual text of the line. This is usually pointing to rl_prompt. */ char *rl_display_prompt = (char *)NULL; /* Pseudo-global variables declared here. */ + /* The visible cursor position. If you print some text, adjust this. */ +/* NOTE: _rl_last_c_pos is used as a buffer index when not in a locale + supporting multibyte characters, and an absolute cursor position when + in such a locale. This is an artifact of the donated multibyte support. + Care must be taken when modifying its value. */ int _rl_last_c_pos = 0; int _rl_last_v_pos = 0; +static int cpos_adjusted; +static int cpos_buffer_position; + /* Number of lines currently on screen minus 1. */ int _rl_vis_botlin = 0; @@ -158,6 +168,7 @@ static int line_size = 1024; include invisible characters. */ static char *local_prompt, *local_prompt_prefix; +static int local_prompt_len; static int prompt_visible_length, prompt_prefix_length; /* The number of invisible characters in the line currently being @@ -184,6 +195,19 @@ static int prompt_last_screen_line; static int prompt_physical_chars; +/* Variables to save and restore prompt and display information. */ + +/* These are getting numerous enough that it's time to create a struct. */ + +static char *saved_local_prompt; +static char *saved_local_prefix; +static int saved_last_invisible; +static int saved_visible_length; +static int saved_prefix_length; +static int saved_local_length; +static int saved_invis_chars_first_line; +static int saved_physical_chars; + /* Expand the prompt string S and return the number of visible characters in *LP, if LP is not null. This is currently more-or-less a placeholder for expansion. LIP, if non-null is a place to store the @@ -204,8 +228,8 @@ expand_prompt (pmt, lp, lip, niflp, vlp) char *pmt; int *lp, *lip, *niflp, *vlp; { - char *r, *ret, *p; - int l, rl, last, ignoring, ninvis, invfl, ind, pind, physchars; + char *r, *ret, *p, *igstart; + int l, rl, last, ignoring, ninvis, invfl, invflset, ind, pind, physchars; /* Short-circuit if we can. */ if ((MB_CUR_MAX <= 1 || rl_byte_oriented) && strchr (pmt, RL_PROMPT_START_IGNORE) == 0) @@ -218,7 +242,7 @@ expand_prompt (pmt, lp, lip, niflp, vlp) if (niflp) *niflp = 0; if (vlp) - *vlp = lp ? *lp : (int) strlen (r); + *vlp = lp ? *lp : strlen (r); return r; } @@ -226,20 +250,24 @@ expand_prompt (pmt, lp, lip, niflp, vlp) r = ret = (char *)xmalloc (l + 1); invfl = 0; /* invisible chars in first line of prompt */ + invflset = 0; /* we only want to set invfl once */ + igstart = 0; for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++) { /* This code strips the invisible character string markers RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE */ - if (*p == RL_PROMPT_START_IGNORE) + if (ignoring == 0 && *p == RL_PROMPT_START_IGNORE) /* XXX - check ignoring? */ { - ignoring++; + ignoring = 1; + igstart = p; continue; } else if (ignoring && *p == RL_PROMPT_END_IGNORE) { ignoring = 0; - last = r - ret - 1; + if (p != (igstart + 1)) + last = r - ret - 1; continue; } else @@ -253,7 +281,10 @@ expand_prompt (pmt, lp, lip, niflp, vlp) while (l--) *r++ = *p++; if (!ignoring) - rl += ind - pind; + { + rl += ind - pind; + physchars += _rl_col_width (pmt, pind, ind); + } else ninvis += ind - pind; p--; /* compensate for later increment */ @@ -263,16 +294,19 @@ expand_prompt (pmt, lp, lip, niflp, vlp) { *r++ = *p; if (!ignoring) - rl++; /* visible length byte counter */ + { + rl++; /* visible length byte counter */ + physchars++; + } else ninvis++; /* invisible chars byte counter */ } - if (rl >= _rl_screenwidth) - invfl = ninvis; - - if (ignoring == 0) - physchars++; + if (invflset == 0 && rl >= _rl_screenwidth) + { + invfl = ninvis; + invflset = 1; + } } } @@ -332,7 +366,9 @@ rl_expand_prompt (prompt) FREE (local_prompt_prefix); local_prompt = local_prompt_prefix = (char *)0; - prompt_last_invisible = prompt_visible_length = 0; + local_prompt_len = 0; + prompt_last_invisible = prompt_invis_chars_first_line = 0; + prompt_visible_length = prompt_physical_chars = 0; if (prompt == 0 || *prompt == 0) return (0); @@ -346,6 +382,7 @@ rl_expand_prompt (prompt) &prompt_invis_chars_first_line, &prompt_physical_chars); local_prompt_prefix = (char *)0; + local_prompt_len = local_prompt ? strlen (local_prompt) : 0; return (prompt_visible_length); } else @@ -355,15 +392,16 @@ rl_expand_prompt (prompt) local_prompt = expand_prompt (p, &prompt_visible_length, &prompt_last_invisible, (int *)NULL, - (int *)NULL); + &prompt_physical_chars); c = *t; *t = '\0'; /* The portion of the prompt string up to and including the final newline is now null-terminated. */ local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, (int *)NULL, &prompt_invis_chars_first_line, - &prompt_physical_chars); + (int *)NULL); *t = c; + local_prompt_len = local_prompt ? strlen (local_prompt) : 0; return (prompt_prefix_length); } } @@ -420,13 +458,13 @@ rl_redisplay () { register int in, out, c, linenum, cursor_linenum; register char *line; - int c_pos, inv_botlin, lb_botlin, lb_linenum; - int newlines, lpos, temp, modmark; + int inv_botlin, lb_botlin, lb_linenum, o_cpos; + int newlines, lpos, temp, modmark, n0, num; char *prompt_this_line; #if defined (HANDLE_MULTIBYTE) wchar_t wc; size_t wc_bytes; - int wc_width= 0; + int wc_width; mbstate_t ps; int _rl_wrapped_multicolumn = 0; #endif @@ -435,16 +473,16 @@ rl_redisplay () return; if (!rl_display_prompt) - rl_display_prompt = (char*) ""; + rl_display_prompt = ""; - if (invisible_line == 0) + if (invisible_line == 0 || vis_lbreaks == 0) { init_line_structures (0); rl_on_new_line (); } /* Draw the line into the buffer. */ - c_pos = -1; + cpos_buffer_position = -1; line = invisible_line; out = inv_botlin = 0; @@ -471,24 +509,23 @@ rl_redisplay () number of non-visible characters in the prompt string. */ if (rl_display_prompt == rl_prompt || local_prompt) { - int local_len = local_prompt ? strlen (local_prompt) : 0; if (local_prompt_prefix && forced_display) _rl_output_some_chars (local_prompt_prefix, strlen (local_prompt_prefix)); - if (local_len > 0) + if (local_prompt_len > 0) { - temp = local_len + out + 2; + temp = local_prompt_len + out + 2; if (temp >= line_size) { line_size = (temp + 1024) - (temp % 1024); visible_line = (char *)xrealloc (visible_line, line_size); line = invisible_line = (char *)xrealloc (invisible_line, line_size); } - strncpy (line + out, local_prompt, local_len); - out += local_len; + strncpy (line + out, local_prompt, local_prompt_len); + out += local_prompt_len; } line[out] = '\0'; - wrap_offset = local_len - prompt_visible_length; + wrap_offset = local_prompt_len - prompt_visible_length; } else { @@ -524,17 +561,6 @@ rl_redisplay () wrap_offset = prompt_invis_chars_first_line = 0; } -#if defined (HANDLE_MULTIBYTE) -#define CHECK_INV_LBREAKS() \ - do { \ - if (newlines >= (inv_lbsize - 2)) \ - { \ - inv_lbsize *= 2; \ - inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ - _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ - } \ - } while (0) -#else #define CHECK_INV_LBREAKS() \ do { \ if (newlines >= (inv_lbsize - 2)) \ @@ -543,7 +569,6 @@ rl_redisplay () inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ } \ } while (0) -#endif #if defined (HANDLE_MULTIBYTE) #define CHECK_LPOS() \ @@ -589,6 +614,7 @@ rl_redisplay () #if defined (HANDLE_MULTIBYTE) memset (_rl_wrapped_line, 0, vis_lbsize); + num = 0; #endif /* prompt_invis_chars_first_line is the number of invisible characters in @@ -600,6 +626,7 @@ rl_redisplay () contents of the command line? */ while (lpos >= _rl_screenwidth) { + int z; /* fix from Darin Johnson <darin@acuson.com> for prompt string with invisible characters that is longer than the screen width. The prompt_invis_chars_first_line variable could be made into an array @@ -607,19 +634,47 @@ rl_redisplay () probably too much work for the benefit gained. How many people have prompts that exceed two physical lines? Additional logic fix from Edward Catmur <ed@catmur.co.uk> */ - temp = ((newlines + 1) * _rl_screenwidth) + - ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line - : ((newlines == 1) ? wrap_offset : 0)) - : ((newlines == 0) ? wrap_offset :0)); +#if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + { + n0 = num; + temp = local_prompt_len; + while (num < temp) + { + z = _rl_col_width (local_prompt, n0, num); + if (z > _rl_screenwidth) + { + num = _rl_find_prev_mbchar (local_prompt, num, MB_FIND_ANY); + break; + } + else if (z == _rl_screenwidth) + break; + num++; + } + temp = num; + } + else +#endif /* !HANDLE_MULTIBYTE */ + temp = ((newlines + 1) * _rl_screenwidth); + + /* Now account for invisible characters in the current line. */ + temp += ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line + : ((newlines == 1) ? wrap_offset : 0)) + : ((newlines == 0) ? wrap_offset :0)); inv_lbreaks[++newlines] = temp; - lpos -= _rl_screenwidth; +#if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + lpos -= _rl_col_width (local_prompt, n0, num); + else +#endif + lpos -= _rl_screenwidth; } prompt_last_screen_line = newlines; /* Draw the rest of the line (after the prompt) into invisible_line, keeping - track of where the cursor is (c_pos), the number of the line containing + track of where the cursor is (cpos_buffer_position), the number of the line containing the cursor (lb_linenum), the last line number (lb_botlin and inv_botlin). It maintains an array of line breaks for display (inv_lbreaks). This handles expanding tabs for display and displaying meta characters. */ @@ -672,7 +727,7 @@ rl_redisplay () if (in == rl_point) { - c_pos = out; + cpos_buffer_position = out; lb_linenum = newlines; } @@ -766,10 +821,10 @@ rl_redisplay () } if (in == rl_point) { - c_pos = out; + cpos_buffer_position = out; lb_linenum = newlines; } - for (i = in; i < (int) (in+wc_bytes); i++) + for (i = in; i < in+wc_bytes; i++) line[out++] = rl_line_buffer[i]; for (i = 0; i < wc_width; i++) CHECK_LPOS(); @@ -797,9 +852,9 @@ rl_redisplay () } line[out] = '\0'; - if (c_pos < 0) + if (cpos_buffer_position < 0) { - c_pos = out; + cpos_buffer_position = out; lb_linenum = newlines; } @@ -808,7 +863,7 @@ rl_redisplay () inv_lbreaks[newlines+1] = out; cursor_linenum = lb_linenum; - /* C_POS == position in buffer where cursor should be placed. + /* CPOS_BUFFER_POSITION == position in buffer where cursor should be placed. CURSOR_LINENUM == line number where the cursor should be placed. */ /* PWP: now is when things get a bit hairy. The visible and invisible @@ -822,7 +877,7 @@ rl_redisplay () if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up) { - int nleft, pos, changed_screen_line; + int nleft, pos, changed_screen_line, tx; if (!rl_display_fixed || forced_display) { @@ -847,15 +902,38 @@ rl_redisplay () #define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l])) #define INV_LLEN(l) (inv_lbreaks[l+1] - inv_lbreaks[l]) #define VIS_CHARS(line) (visible_line + vis_lbreaks[line]) -#define VIS_LINE(line) ((line) > _rl_vis_botlin) ? (char*) "" : VIS_CHARS(line) +#define VIS_LINE(line) ((line) > _rl_vis_botlin) ? "" : VIS_CHARS(line) #define INV_LINE(line) (invisible_line + inv_lbreaks[line]) /* For each line in the buffer, do the updating display. */ for (linenum = 0; linenum <= inv_botlin; linenum++) { + /* This can lead us astray if we execute a program that changes + the locale from a non-multibyte to a multibyte one. */ + o_cpos = _rl_last_c_pos; + cpos_adjusted = 0; update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum, VIS_LLEN(linenum), INV_LLEN(linenum), inv_botlin); + /* update_line potentially changes _rl_last_c_pos, but doesn't + take invisible characters into account, since _rl_last_c_pos + is an absolute cursor position in a multibyte locale. See + if compensating here is the right thing, or if we have to + change update_line itself. There is one case in which + update_line adjusts _rl_last_c_pos itself (so it can pass + _rl_move_cursor_relative accurate values); it communicates + this back by setting cpos_adjusted. If we assume that + _rl_last_c_pos is correct (an absolute cursor position) each + time update_line is called, then we can assume in our + calculations that o_cpos does not need to be adjusted by + wrap_offset. */ + if (linenum == 0 && (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && + cpos_adjusted == 0 && + _rl_last_c_pos != o_cpos && + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) + _rl_last_c_pos -= wrap_offset; + /* If this is the line with the prompt, we might need to compensate for invisible characters in the new line. Do this only if there is not more than one new line (which @@ -867,7 +945,10 @@ rl_redisplay () (wrap_offset > visible_wrap_offset) && (_rl_last_c_pos < visible_first_line_len)) { - nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos; + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + nleft = _rl_screenwidth - _rl_last_c_pos; + else + nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos; if (nleft) _rl_clear_to_eol (nleft); } @@ -888,7 +969,7 @@ rl_redisplay () _rl_move_vert (linenum); _rl_move_cursor_relative (0, tt); _rl_clear_to_eol - ((linenum == _rl_vis_botlin) ? (int) strlen (tt) : _rl_screenwidth); + ((linenum == _rl_vis_botlin) ? strlen (tt) : _rl_screenwidth); } } _rl_vis_botlin = inv_botlin; @@ -903,7 +984,7 @@ rl_redisplay () the physical cursor position on the screen stays the same, but the buffer position needs to be adjusted to account for invisible characters. */ - if (cursor_linenum == 0 && wrap_offset) + if ((MB_CUR_MAX == 1 || rl_byte_oriented) && cursor_linenum == 0 && wrap_offset) _rl_last_c_pos += wrap_offset; } @@ -914,7 +995,11 @@ rl_redisplay () invisible character in the prompt string. */ nleft = prompt_visible_length + wrap_offset; if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 && - _rl_last_c_pos <= prompt_last_invisible && local_prompt) +#if 0 + _rl_last_c_pos <= PROMPT_ENDING_INDEX && local_prompt) +#else + _rl_last_c_pos < PROMPT_ENDING_INDEX && local_prompt) +#endif { #if defined (__MSDOS__) putc ('\r', rl_outstream); @@ -924,7 +1009,7 @@ rl_redisplay () #endif _rl_output_some_chars (local_prompt, nleft); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft); + _rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft) - wrap_offset; else _rl_last_c_pos = nleft; } @@ -933,21 +1018,35 @@ rl_redisplay () in the buffer? */ pos = inv_lbreaks[cursor_linenum]; /* nleft == number of characters in the line buffer between the - start of the line and the cursor position. */ - nleft = c_pos - pos; + start of the line and the desired cursor position. */ + nleft = cpos_buffer_position - pos; + + /* NLEFT is now a number of characters in a buffer. When in a + multibyte locale, however, _rl_last_c_pos is an absolute cursor + position that doesn't take invisible characters in the prompt + into account. We use a fudge factor to compensate. */ /* Since _rl_backspace() doesn't know about invisible characters in the prompt, and there's no good way to tell it, we compensate for those characters here and call _rl_backspace() directly. */ if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos) { - _rl_backspace (_rl_last_c_pos - nleft); + /* TX == new physical cursor position in multibyte locale. */ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (&visible_line[pos], 0, nleft); + tx = _rl_col_width (&visible_line[pos], 0, nleft) - visible_wrap_offset; else - _rl_last_c_pos = nleft; + tx = nleft; + if (_rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ + _rl_last_c_pos = tx; + } } + /* We need to note that in a multibyte locale we are dealing with + _rl_last_c_pos as an absolute cursor position, but moving to a + point specified by a buffer position (NLEFT) that doesn't take + invisible characters into account. */ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) _rl_move_cursor_relative (nleft, &invisible_line[pos]); else if (nleft != _rl_last_c_pos) @@ -966,11 +1065,11 @@ rl_redisplay () will be LMARGIN. */ /* The number of characters that will be displayed before the cursor. */ - ndisp = c_pos - wrap_offset; + ndisp = cpos_buffer_position - wrap_offset; nleft = prompt_visible_length + wrap_offset; /* Where the new cursor position will be on the screen. This can be longer than SCREENWIDTH; if it is, lmargin will be adjusted. */ - phys_c_pos = c_pos - (last_lmargin ? last_lmargin : wrap_offset); + phys_c_pos = cpos_buffer_position - (last_lmargin ? last_lmargin : wrap_offset); t = _rl_screenwidth / 3; /* If the number of characters had already exceeded the screenwidth, @@ -981,7 +1080,7 @@ rl_redisplay () two-thirds of the way across the screen. */ if (phys_c_pos > _rl_screenwidth - 2) { - lmargin = c_pos - (2 * t); + lmargin = cpos_buffer_position - (2 * t); if (lmargin < 0) lmargin = 0; /* If the left margin would be in the middle of a prompt with @@ -995,7 +1094,7 @@ rl_redisplay () { /* If we are moving back towards the beginning of the line and the last margin is no longer correct, compute a new one. */ - lmargin = ((c_pos - 1) / t) * t; /* XXX */ + lmargin = ((cpos_buffer_position - 1) / t) * t; /* XXX */ if (wrap_offset && lmargin > 0 && lmargin < nleft) lmargin = nleft; } @@ -1040,7 +1139,7 @@ rl_redisplay () if (visible_first_line_len > _rl_screenwidth) visible_first_line_len = _rl_screenwidth; - _rl_move_cursor_relative (c_pos - lmargin, &invisible_line[lmargin]); + _rl_move_cursor_relative (cpos_buffer_position - lmargin, &invisible_line[lmargin]); last_lmargin = lmargin; } } @@ -1106,7 +1205,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) the exact cursor position and cut-and-paste with certain terminal emulators. In this calculation, TEMP is the physical screen position of the cursor. */ - temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + temp = _rl_last_c_pos; + else + temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode && _rl_last_v_pos == current_line - 1) { @@ -1171,7 +1273,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) putc (new[0], rl_outstream); else putc (' ', rl_outstream); - _rl_last_c_pos = 1; /* XXX */ + _rl_last_c_pos = 1; _rl_last_v_pos++; if (old[0] && new[0]) old[0] = new[0]; @@ -1312,7 +1414,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) if (_rl_last_v_pos != current_line) { _rl_move_vert (current_line); - if (current_line == 0 && visible_wrap_offset) + if ((MB_CUR_MAX == 1 || rl_byte_oriented) && current_line == 0 && visible_wrap_offset) _rl_last_c_pos += visible_wrap_offset; } @@ -1328,11 +1430,11 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) sequences (like drawing the `unbold' sequence without a corresponding `bold') that manifests itself on certain terminals. */ - lendiff = local_prompt ? strlen (local_prompt) : 0; + lendiff = local_prompt_len; od = ofd - old; /* index of first difference in visible line */ if (current_line == 0 && !_rl_horizontal_scroll_mode && _rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 && - od >= lendiff && _rl_last_c_pos <= prompt_last_invisible) + od >= lendiff && _rl_last_c_pos < PROMPT_ENDING_INDEX) { #if defined (__MSDOS__) putc ('\r', rl_outstream); @@ -1341,12 +1443,29 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) #endif _rl_output_some_chars (local_prompt, lendiff); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff); + { + /* We take wrap_offset into account here so we can pass correct + information to _rl_move_cursor_relative. */ + _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff) - wrap_offset; + cpos_adjusted = 1; + } else _rl_last_c_pos = lendiff; } + /* When this function returns, _rl_last_c_pos is correct, and an absolute + cursor postion in multibyte mode, but a buffer index when not in a + multibyte locale. */ _rl_move_cursor_relative (od, old); +#if 1 +#if defined (HANDLE_MULTIBYTE) + /* We need to indicate that the cursor position is correct in the presence of + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ + if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; +#endif +#endif /* if (len (new) > len (old)) lendiff == difference in buffer @@ -1403,7 +1522,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) insert_some_chars (nfd, lendiff, col_lendiff); _rl_last_c_pos += col_lendiff; } - else if (*ols == 0 && lendiff > 0) + else if ((MB_CUR_MAX == 1 || rl_byte_oriented != 0) && *ols == 0 && lendiff > 0) { /* At the end of a line the characters do not have to be "inserted". They can just be placed on the screen. */ @@ -1442,6 +1561,10 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) /* cannot insert chars, write to EOL */ _rl_output_some_chars (nfd, temp); _rl_last_c_pos += col_temp; + /* If we're in a multibyte locale and were before the last invisible + char in the current line (which implies we just output some invisible + characters) we need to adjust _rl_last_c_pos, since it represents + a physical character position. */ } } else /* Delete characters from line. */ @@ -1473,7 +1596,7 @@ update_line (old, new, current_line, omax, nmax, inv_botlin) if (temp > 0) { _rl_output_some_chars (nfd, temp); - _rl_last_c_pos += col_temp; + _rl_last_c_pos += col_temp; /* XXX */ } lendiff = (oe - old) - (ne - new); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) @@ -1535,7 +1658,7 @@ rl_on_new_line_with_prompt () l = strlen (prompt_last_line); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l); + _rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l); /* XXX */ else _rl_last_c_pos = l; @@ -1570,10 +1693,11 @@ rl_on_new_line_with_prompt () int rl_forced_update_display () { + register char *temp; + if (visible_line) { - register char *temp = visible_line; - + temp = visible_line; while (*temp) *temp++ = '\0'; } @@ -1584,6 +1708,8 @@ rl_forced_update_display () } /* Move the cursor from _rl_last_c_pos to NEW, which are buffer indices. + (Well, when we don't have multibyte characters, _rl_last_c_pos is a + buffer index.) DATA is the contents of the screen line of interest; i.e., where the movement is being done. */ void @@ -1592,29 +1718,47 @@ _rl_move_cursor_relative (new, data) const char *data; { register int i; + int woff; /* number of invisible chars on current line */ + int cpos, dpos; /* current and desired cursor positions */ - /* If we don't have to do anything, then return. */ + woff = W_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; #if defined (HANDLE_MULTIBYTE) /* If we have multibyte characters, NEW is indexed by the buffer point in a multibyte string, but _rl_last_c_pos is the display position. In this case, NEW's display position is not obvious and must be - calculated. */ - if (MB_CUR_MAX == 1 || rl_byte_oriented) + calculated. We need to account for invisible characters in this line, + as long as we are past them and they are counted by _rl_col_width. */ + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { - if (_rl_last_c_pos == new) - return; + dpos = _rl_col_width (data, 0, new); + if (dpos > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; + /* Since this will be assigned to _rl_last_c_pos at the end (more + precisely, _rl_last_c_pos == dpos when this function returns), + let the caller know. */ + cpos_adjusted = 1; + } } - else if (_rl_last_c_pos == _rl_col_width (data, 0, new)) - return; -#else - if (_rl_last_c_pos == new) return; + else #endif + dpos = new; + + /* If we don't have to do anything, then return. */ + if (cpos == dpos) + return; /* It may be faster to output a CR, and then move forwards instead of moving backwards. */ /* i == current physical cursor position. */ - i = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); - if (new == 0 || CR_FASTER (new, _rl_last_c_pos) || +#if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + i = _rl_last_c_pos; + else +#endif + i = _rl_last_c_pos - woff; + if (dpos == 0 || CR_FASTER (dpos, _rl_last_c_pos) || (_rl_term_autowrap && i == _rl_screenwidth)) { #if defined (__MSDOS__) @@ -1622,10 +1766,10 @@ _rl_move_cursor_relative (new, data) #else tputs (_rl_term_cr, 1, _rl_output_character_function); #endif /* !__MSDOS__ */ - _rl_last_c_pos = 0; + cpos = _rl_last_c_pos = 0; } - if (_rl_last_c_pos < new) + if (cpos < dpos) { /* Move the cursor forward. We do it by printing the command to move the cursor forward if there is one, else print that @@ -1636,67 +1780,43 @@ _rl_move_cursor_relative (new, data) sequence telling the terminal to move forward one character. That kind of control is for people who don't know what the data is underneath the cursor. */ -#if defined (HACK_TERMCAP_MOTION) - if (_rl_term_forward_char) + + /* However, we need a handle on where the current display position is + in the buffer for the immediately preceding comment to be true. + In multibyte locales, we don't currently have that info available. + Without it, we don't know where the data we have to display begins + in the buffer and we have to go back to the beginning of the screen + line. In this case, we can use the terminal sequence to move forward + if it's available. */ + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + if (_rl_term_forward_char) { - int width; - width = _rl_col_width (data, _rl_last_c_pos, new); - for (i = 0; i < width; i++) - tputs (_rl_term_forward_char, 1, _rl_output_character_function); + for (i = cpos; i < dpos; i++) + tputs (_rl_term_forward_char, 1, _rl_output_character_function); } else { - for (i = _rl_last_c_pos; i < new; i++) - tputs (_rl_term_forward_char, 1, _rl_output_character_function); + tputs (_rl_term_cr, 1, _rl_output_character_function); + for (i = 0; i < new; i++) + putc (data[i], rl_outstream); } } - else if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - tputs (_rl_term_cr, 1, _rl_output_character_function); - for (i = 0; i < new; i++) - putc (data[i], rl_outstream); - } else - for (i = _rl_last_c_pos; i < new; i++) + for (i = cpos; i < new; i++) putc (data[i], rl_outstream); - -#else /* !HACK_TERMCAP_MOTION */ - - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - tputs (_rl_term_cr, 1, _rl_output_character_function); - for (i = 0; i < new; i++) - putc (data[i], rl_outstream); - } - else - for (i = _rl_last_c_pos; i < new; i++) - putc (data[i], rl_outstream); - -#endif /* !HACK_TERMCAP_MOTION */ - } + #if defined (HANDLE_MULTIBYTE) /* NEW points to the buffer point, but _rl_last_c_pos is the display point. The byte length of the string is probably bigger than the column width of the string, which means that if NEW == _rl_last_c_pos, then NEW's display point is less than _rl_last_c_pos. */ - else if (_rl_last_c_pos >= new) -#else - else if (_rl_last_c_pos > new) #endif - { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_backspace (_rl_last_c_pos - _rl_col_width (data, 0, new)); - else - _rl_backspace (_rl_last_c_pos - new); - } + else if (cpos > dpos) + _rl_backspace (cpos - dpos); - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - _rl_last_c_pos = _rl_col_width (data, 0, new); - else - _rl_last_c_pos = new; + _rl_last_c_pos = dpos; } /* PWP: move the cursor up or down. */ @@ -1785,9 +1905,9 @@ rl_character_len (c, pos) return ((ISPRINT (uc)) ? 1 : 2); } - /* How to print things in the "echo-area". The prompt is treated as a mini-modeline. */ +static int msg_saved_prompt = 0; #if defined (USE_VARARGS) int @@ -1818,8 +1938,20 @@ rl_message (va_alist) #endif va_end (args); + if (saved_local_prompt == 0) + { + rl_save_prompt (); + msg_saved_prompt = 1; + } rl_display_prompt = msg_buf; + local_prompt = expand_prompt (msg_buf, &prompt_visible_length, + &prompt_last_invisible, + &prompt_invis_chars_first_line, + &prompt_physical_chars); + local_prompt_prefix = (char *)NULL; + local_prompt_len = local_prompt ? strlen (local_prompt) : 0; (*rl_redisplay_function) (); + return 0; } #else /* !USE_VARARGS */ @@ -1829,8 +1961,21 @@ rl_message (format, arg1, arg2) { sprintf (msg_buf, format, arg1, arg2); msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */ + rl_display_prompt = msg_buf; + if (saved_local_prompt == 0) + { + rl_save_prompt (); + msg_saved_prompt = 1; + } + local_prompt = expand_prompt (msg_buf, &prompt_visible_length, + &prompt_last_invisible, + &prompt_invis_chars_first_line, + &prompt_physical_chars); + local_prompt_prefix = (char *)NULL; + local_prompt_len = local_prompt ? strlen (local_prompt) : 0; (*rl_redisplay_function) (); + return 0; } #endif /* !USE_VARARGS */ @@ -1840,6 +1985,11 @@ int rl_clear_message () { rl_display_prompt = rl_prompt; + if (msg_saved_prompt) + { + rl_restore_prompt (); + msg_saved_prompt = 0; + } (*rl_redisplay_function) (); return 0; } @@ -1849,32 +1999,26 @@ rl_reset_line_state () { rl_on_new_line (); - rl_display_prompt = rl_prompt ? rl_prompt : (char*) ""; + rl_display_prompt = rl_prompt ? rl_prompt : ""; forced_display = 1; return 0; } -/* These are getting numerous enough that it's time to create a struct. */ - -static char *saved_local_prompt; -static char *saved_local_prefix; -static int saved_last_invisible; -static int saved_visible_length; -static int saved_invis_chars_first_line; -static int saved_physical_chars; - void rl_save_prompt () { saved_local_prompt = local_prompt; saved_local_prefix = local_prompt_prefix; + saved_prefix_length = prompt_prefix_length; + saved_local_length = local_prompt_len; saved_last_invisible = prompt_last_invisible; saved_visible_length = prompt_visible_length; saved_invis_chars_first_line = prompt_invis_chars_first_line; saved_physical_chars = prompt_physical_chars; local_prompt = local_prompt_prefix = (char *)0; - prompt_last_invisible = prompt_visible_length = 0; + local_prompt_len = 0; + prompt_last_invisible = prompt_visible_length = prompt_prefix_length = 0; prompt_invis_chars_first_line = prompt_physical_chars = 0; } @@ -1886,10 +2030,18 @@ rl_restore_prompt () local_prompt = saved_local_prompt; local_prompt_prefix = saved_local_prefix; + local_prompt_len = saved_local_length; + prompt_prefix_length = saved_prefix_length; prompt_last_invisible = saved_last_invisible; prompt_visible_length = saved_visible_length; prompt_invis_chars_first_line = saved_invis_chars_first_line; prompt_physical_chars = saved_physical_chars; + + /* can test saved_local_prompt to see if prompt info has been saved. */ + saved_local_prompt = saved_local_prefix = (char *)0; + saved_local_length = 0; + saved_last_invisible = saved_visible_length = saved_prefix_length = 0; + saved_invis_chars_first_line = saved_physical_chars = 0; } char * @@ -1897,11 +2049,15 @@ _rl_make_prompt_for_search (pchar) int pchar; { int len; - char *pmt; + char *pmt, *p; rl_save_prompt (); - if (saved_local_prompt == 0) + /* We've saved the prompt, and can do anything with the various prompt + strings we need before they're restored. We want the unexpanded + portion of the prompt string after any final newline. */ + p = rl_prompt ? strrchr (rl_prompt, '\n') : 0; + if (p == 0) { len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; pmt = (char *)xmalloc (len + 2); @@ -1912,17 +2068,17 @@ _rl_make_prompt_for_search (pchar) } else { - len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; + p++; + len = strlen (p); pmt = (char *)xmalloc (len + 2); if (len) - strcpy (pmt, saved_local_prompt); + strcpy (pmt, p); pmt[len] = pchar; pmt[len+1] = '\0'; - local_prompt = savestring (pmt); - prompt_last_invisible = saved_last_invisible; - prompt_visible_length = saved_visible_length + 1; - } + } + /* will be overwritten by expand_prompt, called from rl_message */ + prompt_physical_chars = saved_physical_chars + 1; return pmt; } @@ -1983,6 +2139,9 @@ insert_some_chars (string, count, col) char *string; int count, col; { +#if defined (__MSDOS__) || defined (__MINGW32__) + _rl_output_some_chars (string, count); +#else /* DEBUGGING */ if (MB_CUR_MAX == 1 || rl_byte_oriented) if (count != col) @@ -2021,6 +2180,7 @@ insert_some_chars (string, count, col) if (_rl_term_ei && *_rl_term_ei) tputs (_rl_term_ei, 1, _rl_output_character_function); } +#endif /* __MSDOS__ || __MINGW32__ */ } /* Delete COUNT characters from the display line. */ @@ -2031,6 +2191,7 @@ delete_chars (count) if (count > _rl_screenwidth) /* XXX */ return; +#if !defined (__MSDOS__) && !defined (__MINGW32__) if (_rl_term_DC && *_rl_term_DC) { char *buffer; @@ -2043,6 +2204,7 @@ delete_chars (count) while (count--) tputs (_rl_term_dc, 1, _rl_output_character_function); } +#endif /* !__MSDOS__ && !__MINGW32__ */ } void @@ -2066,7 +2228,8 @@ _rl_update_final () char *last_line; last_line = &visible_line[vis_lbreaks[_rl_vis_botlin]]; - _rl_move_cursor_relative (_rl_screenwidth - 1, last_line); + cpos_buffer_position = -1; /* don't know where we are in buffer */ + _rl_move_cursor_relative (_rl_screenwidth - 1, last_line); /* XXX */ _rl_clear_to_eol (0); putc (last_line[_rl_screenwidth - 1], rl_outstream); } @@ -2098,18 +2261,10 @@ static void redraw_prompt (t) char *t; { - char *oldp, *oldl, *oldlprefix; - int oldlen, oldlast, oldplen, oldninvis, oldphyschars; + char *oldp; - /* Geez, I should make this a struct. */ oldp = rl_display_prompt; - oldl = local_prompt; - oldlprefix = local_prompt_prefix; - oldlen = prompt_visible_length; - oldplen = prompt_prefix_length; - oldlast = prompt_last_invisible; - oldninvis = prompt_invis_chars_first_line; - oldphyschars = prompt_physical_chars; + rl_save_prompt (); rl_display_prompt = t; local_prompt = expand_prompt (t, &prompt_visible_length, @@ -2117,16 +2272,12 @@ redraw_prompt (t) &prompt_invis_chars_first_line, &prompt_physical_chars); local_prompt_prefix = (char *)NULL; + local_prompt_len = local_prompt ? strlen (local_prompt) : 0; + rl_forced_update_display (); rl_display_prompt = oldp; - local_prompt = oldl; - local_prompt_prefix = oldlprefix; - prompt_visible_length = oldlen; - prompt_prefix_length = oldplen; - prompt_last_invisible = oldlast; - prompt_invis_chars_first_line = oldninvis; - prompt_physical_chars = oldphyschars; + rl_restore_prompt(); } /* Redisplay the current line after a SIGWINCH is received. */ @@ -2230,10 +2381,11 @@ _rl_col_width (str, start, end) if (end <= start) return 0; + memset (&ps, 0, sizeof (mbstate_t)); + point = 0; max = end; - memset (&ps, 0, sizeof(ps)); while (point < start) { tmp = mbrlen (str + point, max, &ps); diff --git a/cmd-line-utils/readline/funmap.c b/cmd-line-utils/readline/funmap.c index d56ffb9fadc..9c760cc3475 100644 --- a/cmd-line-utils/readline/funmap.c +++ b/cmd-line-utils/readline/funmap.c @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #if !defined (BUFSIZ) #include <stdio.h> @@ -174,6 +176,7 @@ static FUNMAP default_funmap[] = { { "vi-put", rl_vi_put }, { "vi-redo", rl_vi_redo }, { "vi-replace", rl_vi_replace }, + { "vi-rubout", rl_vi_rubout }, { "vi-search", rl_vi_search }, { "vi-search-again", rl_vi_search_again }, { "vi-set-mark", rl_vi_set_mark }, diff --git a/cmd-line-utils/readline/histexpand.c b/cmd-line-utils/readline/histexpand.c index 0a45438990a..f46c0b2a45d 100644 --- a/cmd-line-utils/readline/histexpand.c +++ b/cmd-line-utils/readline/histexpand.c @@ -22,7 +22,9 @@ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <stdio.h> @@ -54,8 +56,6 @@ typedef int _hist_search_func_t PARAMS((const char *, int)); -extern int rl_byte_oriented; /* declared in mbutil.c */ - static char error_pointer; static char *subst_lhs; @@ -87,14 +87,14 @@ char history_comment_char = '\0'; /* The list of characters which inhibit the expansion of text if found immediately following history_expansion_char. */ -char *history_no_expand_chars = (char*) " \t\n\r="; +char *history_no_expand_chars = " \t\n\r="; /* If set to a non-zero value, single quotes inhibit history expansion. The default is 0. */ int history_quotes_inhibit_expansion = 0; /* Used to split words by history_tokenize_internal. */ -char *history_word_delimiters = (char*) HISTORY_WORD_DELIMITERS; +char *history_word_delimiters = HISTORY_WORD_DELIMITERS; /* If set, this points to a function that is called to verify that a particular history expansion should be performed. */ @@ -203,24 +203,25 @@ get_history_event (string, caller_index, delimiting_quote) } /* Only a closing `?' or a newline delimit a substring search string. */ - for (local_index = i; (c = string[i]); i++) + for (local_index = i; c = string[i]; i++) + { #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - int v; - mbstate_t ps; + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + { + int v; + mbstate_t ps; + + memset (&ps, 0, sizeof (mbstate_t)); + /* These produce warnings because we're passing a const string to a + function that takes a non-const string. */ + _rl_adjust_point ((char *)string, i, &ps); + if ((v = _rl_get_char_len ((char *)string + i, &ps)) > 1) + { + i += v - 1; + continue; + } + } - memset (&ps, 0, sizeof (mbstate_t)); - /* These produce warnings because we're passing a const string to a - function that takes a non-const string. */ - _rl_adjust_point ((char *)string, i, &ps); - if ((v = _rl_get_char_len ((char *)string + i, &ps)) > 1) - { - i += v - 1; - continue; - } - } - else #endif /* HANDLE_MULTIBYTE */ if ((!substring_okay && (whitespace (c) || c == ':' || (history_search_delimiter_chars && member (c, history_search_delimiter_chars)) || @@ -228,6 +229,7 @@ get_history_event (string, caller_index, delimiting_quote) string[i] == '\n' || (substring_okay && string[i] == '?')) break; + } which = i - local_index; temp = (char *)xmalloc (1 + which); @@ -560,12 +562,12 @@ history_expand_internal (string, start, end_index_ptr, ret_string, current_line) #if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { - int chr, l; + int ch, l; l = _rl_find_prev_mbchar (string, i, MB_FIND_ANY); - chr = string[l]; + ch = string[l]; /* XXX - original patch had i - 1 ??? If i == 0 it would fail. */ - if (i && (chr == '\'' || chr == '"')) - quoted_search_delimiter = chr; + if (i && (ch == '\'' || ch == '"')) + quoted_search_delimiter = ch; } else #endif /* HANDLE_MULTIBYTE */ @@ -1426,6 +1428,8 @@ history_tokenize_word (string, ind) { if (peek == '<' && string[i + 2] == '-') i++; + else if (peek == '<' && string[i + 2] == '<') + i++; i += 2; return i; } diff --git a/cmd-line-utils/readline/histfile.c b/cmd-line-utils/readline/histfile.c index f1822b105a4..2f051a32563 100644 --- a/cmd-line-utils/readline/histfile.c +++ b/cmd-line-utils/readline/histfile.c @@ -30,7 +30,9 @@ # include <floss.h> #endif -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <stdio.h> @@ -184,8 +186,7 @@ read_history_range (filename, from, to) file_size = (size_t)finfo.st_size; /* check for overflow on very large files */ - if ((long long) file_size != (long long) finfo.st_size || - file_size + 1 < file_size) + if (file_size != finfo.st_size || file_size + 1 < file_size) { errno = overflow_errno; goto error_and_exit; @@ -255,7 +256,11 @@ read_history_range (filename, from, to) for (line_end = line_start; line_end < bufend; line_end++) if (*line_end == '\n') { - *line_end = '\0'; + /* Change to allow Windows-like \r\n end of line delimiter. */ + if (line_end > line_start && line_end[-1] == '\r') + line_end[-1] = '\0'; + else + *line_end = '\0'; if (*line_start) { @@ -334,8 +339,7 @@ history_truncate_file (fname, lines) file_size = (size_t)finfo.st_size; /* check for overflow on very large files */ - if ((long long) file_size != (long long) finfo.st_size || - file_size + 1 < file_size) + if (file_size != finfo.st_size || file_size + 1 < file_size) { close (file); #if defined (EFBIG) diff --git a/cmd-line-utils/readline/history.c b/cmd-line-utils/readline/history.c index bb1960d8d99..1ccf4db786c 100644 --- a/cmd-line-utils/readline/history.c +++ b/cmd-line-utils/readline/history.c @@ -1,6 +1,6 @@ /* history.c -- standalone history library */ -/* Copyright (C) 1989-2003 Free Software Foundation, Inc. +/* Copyright (C) 1989-2005 Free Software Foundation, Inc. This file contains the GNU History Library (the Library), a set of routines for managing the text of previously typed lines. @@ -25,7 +25,9 @@ you can call. I think I have done that. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <stdio.h> @@ -202,11 +204,27 @@ history_get (offset) int local_index; local_index = offset - history_base; - return (local_index >= history_length || local_index < 0 || !the_history) + return (local_index >= history_length || local_index < 0 || the_history == 0) ? (HIST_ENTRY *)NULL : the_history[local_index]; } +HIST_ENTRY * +alloc_history_entry (string, ts) + char *string; + char *ts; +{ + HIST_ENTRY *temp; + + temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY)); + + temp->line = string ? savestring (string) : string; + temp->data = (char *)NULL; + temp->timestamp = ts; + + return temp; +} + time_t history_get_time (hist) HIST_ENTRY *hist; @@ -288,11 +306,7 @@ add_history (string) } } - temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY)); - temp->line = savestring (string); - temp->data = (char *)NULL; - - temp->timestamp = hist_inittime (); + temp = alloc_history_entry (string, hist_inittime ()); the_history[history_length] = (HIST_ENTRY *)NULL; the_history[history_length - 1] = temp; @@ -326,6 +340,26 @@ free_history_entry (hist) free (hist); return (x); } + +HIST_ENTRY * +copy_history_entry (hist) + HIST_ENTRY *hist; +{ + HIST_ENTRY *ret; + char *ts; + + if (hist == 0) + return hist; + + ret = alloc_history_entry (hist->line, (char *)NULL); + + ts = hist->timestamp ? savestring (hist->timestamp) : hist->timestamp; + ret->timestamp = ts; + + ret->data = hist->data; + + return ret; +} /* Make the history entry at WHICH have LINE and DATA. This returns the old entry so you can dispose of the data. In the case of an @@ -338,7 +372,7 @@ replace_history_entry (which, line, data) { HIST_ENTRY *temp, *old_value; - if (which >= history_length) + if (which < 0 || which >= history_length) return ((HIST_ENTRY *)NULL); temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY)); @@ -352,6 +386,51 @@ replace_history_entry (which, line, data) return (old_value); } +/* Replace the DATA in the specified history entries, replacing OLD with + NEW. WHICH says which one(s) to replace: WHICH == -1 means to replace + all of the history entries where entry->data == OLD; WHICH == -2 means + to replace the `newest' history entry where entry->data == OLD; and + WHICH >= 0 means to replace that particular history entry's data, as + long as it matches OLD. */ +void +replace_history_data (which,old, new) + int which; + histdata_t *old, *new; +{ + HIST_ENTRY *entry; + register int i, last; + + if (which < -2 || which >= history_length || history_length == 0 || the_history == 0) + return; + + if (which >= 0) + { + entry = the_history[which]; + if (entry && entry->data == old) + entry->data = new; + return; + } + + last = -1; + for (i = 0; i < history_length; i++) + { + entry = the_history[i]; + if (entry == 0) + continue; + if (entry->data == old) + { + last = i; + if (which == -1) + entry->data = new; + } + } + if (which == -2 && last >= 0) + { + entry = the_history[last]; + entry->data = new; /* XXX - we don't check entry->old */ + } +} + /* Remove history element WHICH from the history. The removed element is returned to you so you can free the line, data, and containing structure. */ @@ -362,17 +441,15 @@ remove_history (which) HIST_ENTRY *return_value; register int i; - if (which >= history_length || !history_length) - return_value = (HIST_ENTRY *)NULL; - else - { - return_value = the_history[which]; + if (which < 0 || which >= history_length || history_length == 0 || the_history == 0) + return ((HIST_ENTRY *)NULL); - for (i = which; i < history_length; i++) - the_history[i] = the_history[i + 1]; + return_value = the_history[which]; - history_length--; - } + for (i = which; i < history_length; i++) + the_history[i] = the_history[i + 1]; + + history_length--; return (return_value); } diff --git a/cmd-line-utils/readline/histsearch.c b/cmd-line-utils/readline/histsearch.c index 778b323afdc..1cc5875a4b4 100644 --- a/cmd-line-utils/readline/histsearch.c +++ b/cmd-line-utils/readline/histsearch.c @@ -22,7 +22,9 @@ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <stdio.h> #if defined (HAVE_STDLIB_H) diff --git a/cmd-line-utils/readline/input.c b/cmd-line-utils/readline/input.c index 818f2e8763d..da5d771c481 100644 --- a/cmd-line-utils/readline/input.c +++ b/cmd-line-utils/readline/input.c @@ -1,6 +1,6 @@ /* input.c -- character input functions for readline. */ -/* Copyright (C) 1994 Free Software Foundation, Inc. +/* Copyright (C) 1994-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -25,7 +25,9 @@ # include <floss.h> #endif -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> #include <fcntl.h> @@ -177,6 +179,7 @@ rl_gather_tyi () struct timeval timeout; #endif + chars_avail = 0; tty = fileno (rl_instream); #if defined (HAVE_SELECT) @@ -218,6 +221,13 @@ rl_gather_tyi () } #endif /* O_NDELAY */ +#if defined (__MINGW32__) + /* Use getch/_kbhit to check for available console input, in the same way + that we read it normally. */ + chars_avail = isatty (tty) ? _kbhit () : 0; + result = 0; +#endif + /* If there's nothing available, don't waste time trying to read something. */ if (chars_avail <= 0) @@ -261,7 +271,7 @@ rl_set_keyboard_input_timeout (u) int o; o = _keyboard_input_timeout; - if (u > 0) + if (u >= 0) _keyboard_input_timeout = u; return (o); } @@ -303,6 +313,11 @@ _rl_input_available () #endif +#if defined (__MINGW32__) + if (isatty (tty)) + return (_kbhit ()); +#endif + return 0; } @@ -405,7 +420,7 @@ rl_read_key () else { /* If input is coming from a macro, then use that. */ - if ((c= _rl_next_macro_key ())) + if (c = _rl_next_macro_key ()) return (c); /* If the user has an event function, then call it periodically. */ @@ -442,6 +457,10 @@ rl_getc (stream) while (1) { +#if defined (__MINGW32__) + if (isatty (fileno (stream))) + return (getch ()); +#endif result = read (fileno (stream), &c, sizeof (unsigned char)); if (result == sizeof (unsigned char)) @@ -483,7 +502,7 @@ rl_getc (stream) this is simply an interrupted system call to read (). Otherwise, some error ocurred, also signifying EOF. */ if (errno != EINTR) - return (EOF); + return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); } } @@ -517,6 +536,12 @@ _rl_read_mbchar (mbchar, size) ps = ps_back; continue; } + else if (mbchar_bytes_length == 0) + { + mbchar[0] = '\0'; /* null wide character */ + mb_len = 1; + break; + } else if (mbchar_bytes_length > (size_t)(0)) break; } @@ -525,21 +550,21 @@ _rl_read_mbchar (mbchar, size) } /* Read a multibyte-character string whose first character is FIRST into - the buffer MB of length MBLEN. Returns the last character read, which + the buffer MB of length MLEN. Returns the last character read, which may be FIRST. Used by the search functions, among others. Very similar to _rl_read_mbchar. */ int -_rl_read_mbstring (first, mb, mb_len) +_rl_read_mbstring (first, mb, mlen) int first; char *mb; - int mb_len; + int mlen; { int i, c; mbstate_t ps; c = first; - memset (mb, 0, mb_len); - for (i = 0; i < mb_len; i++) + memset (mb, 0, mlen); + for (i = 0; i < mlen; i++) { mb[i] = (char)c; memset (&ps, 0, sizeof (mbstate_t)); diff --git a/cmd-line-utils/readline/isearch.c b/cmd-line-utils/readline/isearch.c index 9071695dda8..9f67bfc0801 100644 --- a/cmd-line-utils/readline/isearch.c +++ b/cmd-line-utils/readline/isearch.c @@ -4,7 +4,7 @@ /* */ /* **************************************************************** */ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file contains the Readline Library (the Library), a set of routines for providing Emacs style line input to programs that ask @@ -26,7 +26,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> @@ -54,21 +56,77 @@ /* Variables exported to other files in the readline library. */ char *_rl_isearch_terminators = (char *)NULL; +_rl_search_cxt *_rl_iscxt = 0; + /* Variables imported from other files in the readline library. */ extern HIST_ENTRY *_rl_saved_line_for_history; -/* Forward declarations */ static int rl_search_history PARAMS((int, int)); +static _rl_search_cxt *_rl_isearch_init PARAMS((int)); +static void _rl_isearch_fini PARAMS((_rl_search_cxt *)); +static int _rl_isearch_cleanup PARAMS((_rl_search_cxt *, int)); + /* Last line found by the current incremental search, so we don't `find' - identical lines many times in a row. */ -static char *prev_line_found; + identical lines many times in a row. Now part of isearch context. */ +/* static char *prev_line_found; */ /* Last search string and its length. */ static char *last_isearch_string; static int last_isearch_string_len; -static char *default_isearch_terminators = (char*) "\033\012"; +static char *default_isearch_terminators = "\033\012"; + +_rl_search_cxt * +_rl_scxt_alloc (type, flags) + int type, flags; +{ + _rl_search_cxt *cxt; + + cxt = (_rl_search_cxt *)xmalloc (sizeof (_rl_search_cxt)); + + cxt->type = type; + cxt->sflags = flags; + + cxt->search_string = 0; + cxt->search_string_size = cxt->search_string_index = 0; + + cxt->lines = 0; + cxt->allocated_line = 0; + cxt->hlen = cxt->hindex = 0; + + cxt->save_point = rl_point; + cxt->save_mark = rl_mark; + cxt->save_line = where_history (); + cxt->last_found_line = cxt->save_line; + cxt->prev_line_found = 0; + + cxt->save_undo_list = 0; + + cxt->history_pos = 0; + cxt->direction = 0; + + cxt->lastc = 0; + + cxt->sline = 0; + cxt->sline_len = cxt->sline_index = 0; + + cxt->search_terminators = 0; + + return cxt; +} + +void +_rl_scxt_dispose (cxt, flags) + _rl_search_cxt *cxt; + int flags; +{ + FREE (cxt->search_string); + FREE (cxt->allocated_line); + FREE (cxt->lines); + + free (cxt); +} /* Search backwards through the history looking for a string which is typed interactively. Start with the current line. */ @@ -90,12 +148,13 @@ rl_forward_search_history (sign, key) /* Display the current state of the search in the echo-area. SEARCH_STRING contains the string that is being searched for, - DIRECTION is zero for forward, or 1 for reverse, + DIRECTION is zero for forward, or non-zero for reverse, WHERE is the history list number of the current line. If it is -1, then this line is the starting one. */ static void -rl_display_search (char *search_string, int reverse_p, - int where __attribute__((unused))) +rl_display_search (search_string, reverse_p, where) + char *search_string; + int reverse_p, where; { char *message; int msglen, searchlen; @@ -137,65 +196,23 @@ rl_display_search (char *search_string, int reverse_p, (*rl_redisplay_function) (); } -/* Search through the history looking for an interactively typed string. - This is analogous to i-search. We start the search in the current line. - DIRECTION is which direction to search; >= 0 means forward, < 0 means - backwards. */ -static int -rl_search_history (int direction, int invoking_key __attribute__((unused))) +static _rl_search_cxt * +_rl_isearch_init (direction) + int direction; { - /* The string that the user types in to search for. */ - char *search_string; - - /* The current length of SEARCH_STRING. */ - int search_string_index; - - /* The amount of space that SEARCH_STRING has allocated to it. */ - int search_string_size; - - /* The list of lines to search through. */ - char **lines, *allocated_line; - - /* The length of LINES. */ - int hlen; - - /* Where we get LINES from. */ - HIST_ENTRY **hlist; - + _rl_search_cxt *cxt; register int i; - int orig_point, orig_mark, orig_line, last_found_line; - int c, found, failed, sline_len; - int n, wstart, wlen; -#if defined (HANDLE_MULTIBYTE) - char mb[MB_LEN_MAX]; -#endif - - /* The line currently being searched. */ - char *sline; - - /* Offset in that line. */ - int line_index; - - /* Non-zero if we are doing a reverse search. */ - int reverse; - - /* The list of characters which terminate the search, but are not - subsequently executed. If the variable isearch-terminators has - been set, we use that value, otherwise we use ESC and C-J. */ - char *isearch_terminators; + HIST_ENTRY **hlist; - RL_SETSTATE(RL_STATE_ISEARCH); - orig_point = rl_point; - orig_mark = rl_mark; - last_found_line = orig_line = where_history (); - reverse = direction < 0; - hlist = history_list (); - allocated_line = (char *)NULL; + cxt = _rl_scxt_alloc (RL_SEARCH_ISEARCH, 0); + if (direction < 0) + cxt->sflags |= SF_REVERSE; - isearch_terminators = _rl_isearch_terminators ? _rl_isearch_terminators + cxt->search_terminators = _rl_isearch_terminators ? _rl_isearch_terminators : default_isearch_terminators; /* Create an arrary of pointers to the lines that we want to search. */ + hlist = history_list (); rl_maybe_replace_line (); i = 0; if (hlist) @@ -203,354 +220,447 @@ rl_search_history (int direction, int invoking_key __attribute__((unused))) /* Allocate space for this many lines, +1 for the current input line, and remember those lines. */ - lines = (char **)xmalloc ((1 + (hlen = i)) * sizeof (char *)); - for (i = 0; i < hlen; i++) - lines[i] = hlist[i]->line; + cxt->lines = (char **)xmalloc ((1 + (cxt->hlen = i)) * sizeof (char *)); + for (i = 0; i < cxt->hlen; i++) + cxt->lines[i] = hlist[i]->line; if (_rl_saved_line_for_history) - lines[i] = _rl_saved_line_for_history->line; + cxt->lines[i] = _rl_saved_line_for_history->line; else { /* Keep track of this so we can free it. */ - allocated_line = (char *)xmalloc (1 + strlen (rl_line_buffer)); - strcpy (allocated_line, &rl_line_buffer[0]); - lines[i] = allocated_line; + cxt->allocated_line = (char *)xmalloc (1 + strlen (rl_line_buffer)); + strcpy (cxt->allocated_line, &rl_line_buffer[0]); + cxt->lines[i] = cxt->allocated_line; } - hlen++; + cxt->hlen++; /* The line where we start the search. */ - i = orig_line; + cxt->history_pos = cxt->save_line; rl_save_prompt (); /* Initialize search parameters. */ - search_string = (char *)xmalloc (search_string_size = 128); - *search_string = '\0'; - search_string_index = 0; - prev_line_found = (char *)0; /* XXX */ + cxt->search_string = (char *)xmalloc (cxt->search_string_size = 128); + cxt->search_string[cxt->search_string_index = 0] = '\0'; /* Normalize DIRECTION into 1 or -1. */ - direction = (direction >= 0) ? 1 : -1; + cxt->direction = (direction >= 0) ? 1 : -1; - rl_display_search (search_string, reverse, -1); + cxt->sline = rl_line_buffer; + cxt->sline_len = strlen (cxt->sline); + cxt->sline_index = rl_point; - sline = rl_line_buffer; - sline_len = strlen (sline); - line_index = rl_point; + _rl_iscxt = cxt; /* save globally */ - found = failed = 0; - for (;;) + return cxt; +} + +static void +_rl_isearch_fini (cxt) + _rl_search_cxt *cxt; +{ + /* First put back the original state. */ + strcpy (rl_line_buffer, cxt->lines[cxt->save_line]); + + rl_restore_prompt (); + + /* Save the search string for possible later use. */ + FREE (last_isearch_string); + last_isearch_string = cxt->search_string; + last_isearch_string_len = cxt->search_string_index; + cxt->search_string = 0; + + if (cxt->last_found_line < cxt->save_line) + rl_get_previous_history (cxt->save_line - cxt->last_found_line, 0); + else + rl_get_next_history (cxt->last_found_line - cxt->save_line, 0); + + /* If the string was not found, put point at the end of the last matching + line. If last_found_line == orig_line, we didn't find any matching + history lines at all, so put point back in its original position. */ + if (cxt->sline_index < 0) { - rl_command_func_t *f = (rl_command_func_t *)NULL; + if (cxt->last_found_line == cxt->save_line) + cxt->sline_index = cxt->save_point; + else + cxt->sline_index = strlen (rl_line_buffer); + rl_mark = cxt->save_mark; + } + + rl_point = cxt->sline_index; + /* Don't worry about where to put the mark here; rl_get_previous_history + and rl_get_next_history take care of it. */ + + rl_clear_message (); +} - /* Read a key and decide how to proceed. */ - RL_SETSTATE(RL_STATE_MOREINPUT); - c = rl_read_key (); - RL_UNSETSTATE(RL_STATE_MOREINPUT); +int +_rl_search_getchar (cxt) + _rl_search_cxt *cxt; +{ + int c; + + /* Read a key and decide how to proceed. */ + RL_SETSTATE(RL_STATE_MOREINPUT); + c = cxt->lastc = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - c = _rl_read_mbstring (c, mb, MB_LEN_MAX); + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + c = cxt->lastc = _rl_read_mbstring (cxt->lastc, cxt->mb, MB_LEN_MAX); #endif - /* Translate the keys we do something with to opcodes. */ - if (c >= 0 && _rl_keymap[c].type == ISFUNC) - { - f = _rl_keymap[c].function; - - if (f == rl_reverse_search_history) - c = reverse ? -1 : -2; - else if (f == rl_forward_search_history) - c = !reverse ? -1 : -2; - else if (f == rl_rubout) - c = -3; - else if (c == CTRL ('G')) - c = -4; - else if (c == CTRL ('W')) /* XXX */ - c = -5; - else if (c == CTRL ('Y')) /* XXX */ - c = -6; - } + return c; +} - /* The characters in isearch_terminators (set from the user-settable - variable isearch-terminators) are used to terminate the search but - not subsequently execute the character as a command. The default - value is "\033\012" (ESC and C-J). */ - if (strchr (isearch_terminators, c)) - { - /* ESC still terminates the search, but if there is pending - input or if input arrives within 0.1 seconds (on systems - with select(2)) it is used as a prefix character - with rl_execute_next. WATCH OUT FOR THIS! This is intended - to allow the arrow keys to be used like ^F and ^B are used - to terminate the search and execute the movement command. - XXX - since _rl_input_available depends on the application- - settable keyboard timeout value, this could alternatively - use _rl_input_queued(100000) */ - if (c == ESC && _rl_input_available ()) - rl_execute_next (ESC); - break; - } +/* Process just-read character C according to isearch context CXT. Return + -1 if the caller should just free the context and return, 0 if we should + break out of the loop, and 1 if we should continue to read characters. */ +int +_rl_isearch_dispatch (cxt, c) + _rl_search_cxt *cxt; + int c; +{ + int n, wstart, wlen, limit, cval; + rl_command_func_t *f; + + f = (rl_command_func_t *)NULL; + + /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { + f = _rl_keymap[c].function; + + if (f == rl_reverse_search_history) + cxt->lastc = (cxt->sflags & SF_REVERSE) ? -1 : -2; + else if (f == rl_forward_search_history) + cxt->lastc = (cxt->sflags & SF_REVERSE) ? -2 : -1; + else if (f == rl_rubout) + cxt->lastc = -3; + else if (c == CTRL ('G')) + cxt->lastc = -4; + else if (c == CTRL ('W')) /* XXX */ + cxt->lastc = -5; + else if (c == CTRL ('Y')) /* XXX */ + cxt->lastc = -6; + } + + /* The characters in isearch_terminators (set from the user-settable + variable isearch-terminators) are used to terminate the search but + not subsequently execute the character as a command. The default + value is "\033\012" (ESC and C-J). */ + if (strchr (cxt->search_terminators, cxt->lastc)) + { + /* ESC still terminates the search, but if there is pending + input or if input arrives within 0.1 seconds (on systems + with select(2)) it is used as a prefix character + with rl_execute_next. WATCH OUT FOR THIS! This is intended + to allow the arrow keys to be used like ^F and ^B are used + to terminate the search and execute the movement command. + XXX - since _rl_input_available depends on the application- + settable keyboard timeout value, this could alternatively + use _rl_input_queued(100000) */ + if (cxt->lastc == ESC && _rl_input_available ()) + rl_execute_next (ESC); + return (0); + } #define ENDSRCH_CHAR(c) \ ((CTRL_CHAR (c) || META_CHAR (c) || (c) == RUBOUT) && ((c) != CTRL ('G'))) #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + { + if (cxt->lastc >= 0 && (cxt->mb[0] && cxt->mb[1] == '\0') && ENDSRCH_CHAR (cxt->lastc)) + { + /* This sets rl_pending_input to c; it will be picked up the next + time rl_read_key is called. */ + rl_execute_next (cxt->lastc); + return (0); + } + } + else +#endif + if (cxt->lastc >= 0 && ENDSRCH_CHAR (cxt->lastc)) + { + /* This sets rl_pending_input to LASTC; it will be picked up the next + time rl_read_key is called. */ + rl_execute_next (cxt->lastc); + return (0); + } + + /* Now dispatch on the character. `Opcodes' affect the search string or + state. Other characters are added to the string. */ + switch (cxt->lastc) + { + /* search again */ + case -1: + if (cxt->search_string_index == 0) { - if (c >= 0 && strlen (mb) == 1 && ENDSRCH_CHAR (c)) + if (last_isearch_string) { - /* This sets rl_pending_input to c; it will be picked up the next - time rl_read_key is called. */ - rl_execute_next (c); + cxt->search_string_size = 64 + last_isearch_string_len; + cxt->search_string = (char *)xrealloc (cxt->search_string, cxt->search_string_size); + strcpy (cxt->search_string, last_isearch_string); + cxt->search_string_index = last_isearch_string_len; + rl_display_search (cxt->search_string, (cxt->sflags & SF_REVERSE), -1); break; } + return (1); } + else if (cxt->sflags & SF_REVERSE) + cxt->sline_index--; + else if (cxt->sline_index != cxt->sline_len) + cxt->sline_index++; else -#endif - if (c >= 0 && ENDSRCH_CHAR (c)) + rl_ding (); + break; + + /* switch directions */ + case -2: + cxt->direction = -cxt->direction; + if (cxt->direction < 0) + cxt->sflags |= SF_REVERSE; + else + cxt->sflags &= ~SF_REVERSE; + break; + + /* delete character from search string. */ + case -3: /* C-H, DEL */ + /* This is tricky. To do this right, we need to keep a + stack of search positions for the current search, with + sentinels marking the beginning and end. But this will + do until we have a real isearch-undo. */ + if (cxt->search_string_index == 0) + rl_ding (); + else + cxt->search_string[--cxt->search_string_index] = '\0'; + break; + + case -4: /* C-G, abort */ + rl_replace_line (cxt->lines[cxt->save_line], 0); + rl_point = cxt->save_point; + rl_mark = cxt->save_mark; + rl_restore_prompt(); + rl_clear_message (); + + return -1; + + case -5: /* C-W */ + /* skip over portion of line we already matched and yank word */ + wstart = rl_point + cxt->search_string_index; + if (wstart >= rl_end) { - /* This sets rl_pending_input to c; it will be picked up the next - time rl_read_key is called. */ - rl_execute_next (c); + rl_ding (); break; } - switch (c) + /* if not in a word, move to one. */ + cval = _rl_char_value (rl_line_buffer, wstart); + if (_rl_walphabetic (cval) == 0) { - case -1: - if (search_string_index == 0) - { - if (last_isearch_string) - { - search_string_size = 64 + last_isearch_string_len; - search_string = (char *)xrealloc (search_string, search_string_size); - strcpy (search_string, last_isearch_string); - search_string_index = last_isearch_string_len; - rl_display_search (search_string, reverse, -1); - break; - } - continue; - } - else if (reverse) - --line_index; - else if (line_index != sline_len) - ++line_index; - else - rl_ding (); + rl_ding (); break; - - /* switch directions */ - case -2: - direction = -direction; - reverse = direction < 0; + } + n = MB_NEXTCHAR (rl_line_buffer, wstart, 1, MB_FIND_NONZERO);; + while (n < rl_end) + { + cval = _rl_char_value (rl_line_buffer, n); + if (_rl_walphabetic (cval) == 0) + break; + n = MB_NEXTCHAR (rl_line_buffer, n, 1, MB_FIND_NONZERO);; + } + wlen = n - wstart + 1; + if (cxt->search_string_index + wlen + 1 >= cxt->search_string_size) + { + cxt->search_string_size += wlen + 1; + cxt->search_string = (char *)xrealloc (cxt->search_string, cxt->search_string_size); + } + for (; wstart < n; wstart++) + cxt->search_string[cxt->search_string_index++] = rl_line_buffer[wstart]; + cxt->search_string[cxt->search_string_index] = '\0'; + break; + + case -6: /* C-Y */ + /* skip over portion of line we already matched and yank rest */ + wstart = rl_point + cxt->search_string_index; + if (wstart >= rl_end) + { + rl_ding (); break; + } + n = rl_end - wstart + 1; + if (cxt->search_string_index + n + 1 >= cxt->search_string_size) + { + cxt->search_string_size += n + 1; + cxt->search_string = (char *)xrealloc (cxt->search_string, cxt->search_string_size); + } + for (n = wstart; n < rl_end; n++) + cxt->search_string[cxt->search_string_index++] = rl_line_buffer[n]; + cxt->search_string[cxt->search_string_index] = '\0'; + break; + + /* Add character to search string and continue search. */ + default: + if (cxt->search_string_index + 2 >= cxt->search_string_size) + { + cxt->search_string_size += 128; + cxt->search_string = (char *)xrealloc (cxt->search_string, cxt->search_string_size); + } +#if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + { + int j, l; + for (j = 0, l = strlen (cxt->mb); j < l; ) + cxt->search_string[cxt->search_string_index++] = cxt->mb[j++]; + } + else +#endif + cxt->search_string[cxt->search_string_index++] = c; + cxt->search_string[cxt->search_string_index] = '\0'; + break; + } - /* delete character from search string. */ - case -3: /* C-H, DEL */ - /* This is tricky. To do this right, we need to keep a - stack of search positions for the current search, with - sentinels marking the beginning and end. But this will - do until we have a real isearch-undo. */ - if (search_string_index == 0) - rl_ding (); - else - search_string[--search_string_index] = '\0'; - - break; + for (cxt->sflags &= ~(SF_FOUND|SF_FAILED);; ) + { + limit = cxt->sline_len - cxt->search_string_index + 1; - case -4: /* C-G */ - rl_replace_line (lines[orig_line], 0); - rl_point = orig_point; - rl_mark = orig_mark; - rl_restore_prompt(); - rl_clear_message (); - if (allocated_line) - free (allocated_line); - free (lines); - RL_UNSETSTATE(RL_STATE_ISEARCH); - return 0; - - case -5: /* C-W */ - /* skip over portion of line we already matched */ - wstart = rl_point + search_string_index; - if (wstart >= rl_end) + /* Search the current line. */ + while ((cxt->sflags & SF_REVERSE) ? (cxt->sline_index >= 0) : (cxt->sline_index < limit)) + { + if (STREQN (cxt->search_string, cxt->sline + cxt->sline_index, cxt->search_string_index)) { - rl_ding (); + cxt->sflags |= SF_FOUND; break; } + else + cxt->sline_index += cxt->direction; + } + if (cxt->sflags & SF_FOUND) + break; - /* if not in a word, move to one. */ - if (rl_alphabetic(rl_line_buffer[wstart]) == 0) - { - rl_ding (); - break; - } - n = wstart; - while (n < rl_end && rl_alphabetic(rl_line_buffer[n])) - n++; - wlen = n - wstart + 1; - if (search_string_index + wlen + 1 >= search_string_size) - { - search_string_size += wlen + 1; - search_string = (char *)xrealloc (search_string, search_string_size); - } - for (; wstart < n; wstart++) - search_string[search_string_index++] = rl_line_buffer[wstart]; - search_string[search_string_index] = '\0'; - break; + /* Move to the next line, but skip new copies of the line + we just found and lines shorter than the string we're + searching for. */ + do + { + /* Move to the next line. */ + cxt->history_pos += cxt->direction; - case -6: /* C-Y */ - /* skip over portion of line we already matched */ - wstart = rl_point + search_string_index; - if (wstart >= rl_end) + /* At limit for direction? */ + if ((cxt->sflags & SF_REVERSE) ? (cxt->history_pos < 0) : (cxt->history_pos == cxt->hlen)) { - rl_ding (); + cxt->sflags |= SF_FAILED; break; } - n = rl_end - wstart + 1; - if (search_string_index + n + 1 >= search_string_size) - { - search_string_size += n + 1; - search_string = (char *)xrealloc (search_string, search_string_size); - } - for (n = wstart; n < rl_end; n++) - search_string[search_string_index++] = rl_line_buffer[n]; - search_string[search_string_index] = '\0'; - break; - default: - /* Add character to search string and continue search. */ - if (search_string_index + 2 >= search_string_size) - { - search_string_size += 128; - search_string = (char *)xrealloc (search_string, search_string_size); - } -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - { - int j, l; - for (j = 0, l = strlen (mb); j < l; ) - search_string[search_string_index++] = mb[j++]; - } - else -#endif - search_string[search_string_index++] = c; - search_string[search_string_index] = '\0'; - break; + /* We will need these later. */ + cxt->sline = cxt->lines[cxt->history_pos]; + cxt->sline_len = strlen (cxt->sline); } + while ((cxt->prev_line_found && STREQ (cxt->prev_line_found, cxt->lines[cxt->history_pos])) || + (cxt->search_string_index > cxt->sline_len)); - for (found = failed = 0;;) - { - int limit = sline_len - search_string_index + 1; + if (cxt->sflags & SF_FAILED) + break; - /* Search the current line. */ - while (reverse ? (line_index >= 0) : (line_index < limit)) - { - if (STREQN (search_string, sline + line_index, search_string_index)) - { - found++; - break; - } - else - line_index += direction; - } - if (found) - break; + /* Now set up the line for searching... */ + cxt->sline_index = (cxt->sflags & SF_REVERSE) ? cxt->sline_len - cxt->search_string_index : 0; + } - /* Move to the next line, but skip new copies of the line - we just found and lines shorter than the string we're - searching for. */ - do - { - /* Move to the next line. */ - i += direction; - - /* At limit for direction? */ - if (reverse ? (i < 0) : (i == hlen)) - { - failed++; - break; - } - - /* We will need these later. */ - sline = lines[i]; - sline_len = strlen (sline); - } - while ((prev_line_found && STREQ (prev_line_found, lines[i])) || - (search_string_index > sline_len)); + if (cxt->sflags & SF_FAILED) + { + /* We cannot find the search string. Ding the bell. */ + rl_ding (); + cxt->history_pos = cxt->last_found_line; + return 1; + } - if (failed) - break; + /* We have found the search string. Just display it. But don't + actually move there in the history list until the user accepts + the location. */ + if (cxt->sflags & SF_FOUND) + { + cxt->prev_line_found = cxt->lines[cxt->history_pos]; + rl_replace_line (cxt->lines[cxt->history_pos], 0); + rl_point = cxt->sline_index; + cxt->last_found_line = cxt->history_pos; + rl_display_search (cxt->search_string, (cxt->sflags & SF_REVERSE), (cxt->history_pos == cxt->save_line) ? -1 : cxt->history_pos); + } - /* Now set up the line for searching... */ - line_index = reverse ? sline_len - search_string_index : 0; - } + return 1; +} - if (failed) - { - /* We cannot find the search string. Ding the bell. */ - rl_ding (); - i = last_found_line; - continue; /* XXX - was break */ - } +static int +_rl_isearch_cleanup (cxt, r) + _rl_search_cxt *cxt; + int r; +{ + if (r >= 0) + _rl_isearch_fini (cxt); + _rl_scxt_dispose (cxt, 0); + _rl_iscxt = 0; - /* We have found the search string. Just display it. But don't - actually move there in the history list until the user accepts - the location. */ - if (found) - { - prev_line_found = lines[i]; - rl_replace_line (lines[i], 0); - rl_point = line_index; - last_found_line = i; - rl_display_search (search_string, reverse, (i == orig_line) ? -1 : i); - } - } + RL_UNSETSTATE(RL_STATE_ISEARCH); - /* The searching is over. The user may have found the string that she - was looking for, or else she may have exited a failing search. If - LINE_INDEX is -1, then that shows that the string searched for was - not found. We use this to determine where to place rl_point. */ + return (r != 0); +} - /* First put back the original state. */ - strcpy (rl_line_buffer, lines[orig_line]); +/* Search through the history looking for an interactively typed string. + This is analogous to i-search. We start the search in the current line. + DIRECTION is which direction to search; >= 0 means forward, < 0 means + backwards. */ +static int +rl_search_history (direction, invoking_key) + int direction, invoking_key; +{ + _rl_search_cxt *cxt; /* local for now, but saved globally */ + int c, r; - rl_restore_prompt (); + RL_SETSTATE(RL_STATE_ISEARCH); + cxt = _rl_isearch_init (direction); - /* Save the search string for possible later use. */ - FREE (last_isearch_string); - last_isearch_string = search_string; - last_isearch_string_len = search_string_index; + rl_display_search (cxt->search_string, (cxt->sflags & SF_REVERSE), -1); - if (last_found_line < orig_line) - rl_get_previous_history (orig_line - last_found_line, 0); - else - rl_get_next_history (last_found_line - orig_line, 0); + /* If we are using the callback interface, all we do is set up here and + return. The key is that we leave RL_STATE_ISEARCH set. */ + if (RL_ISSTATE (RL_STATE_CALLBACK)) + return (0); - /* If the string was not found, put point at the end of the last matching - line. If last_found_line == orig_line, we didn't find any matching - history lines at all, so put point back in its original position. */ - if (line_index < 0) + r = -1; + for (;;) { - if (last_found_line == orig_line) - line_index = orig_point; - else - line_index = strlen (rl_line_buffer); - rl_mark = orig_mark; + c = _rl_search_getchar (cxt); + /* We might want to handle EOF here (c == 0) */ + r = _rl_isearch_dispatch (cxt, cxt->lastc); + if (r <= 0) + break; } - rl_point = line_index; - /* Don't worry about where to put the mark here; rl_get_previous_history - and rl_get_next_history take care of it. */ - - rl_clear_message (); + /* The searching is over. The user may have found the string that she + was looking for, or else she may have exited a failing search. If + LINE_INDEX is -1, then that shows that the string searched for was + not found. We use this to determine where to place rl_point. */ + return (_rl_isearch_cleanup (cxt, r)); +} - FREE (allocated_line); - free (lines); +#if defined (READLINE_CALLBACKS) +/* Called from the callback functions when we are ready to read a key. The + callback functions know to call this because RL_ISSTATE(RL_STATE_ISEARCH). + If _rl_isearch_dispatch finishes searching, this function is responsible + for turning off RL_STATE_ISEARCH, which it does using _rl_isearch_cleanup. */ +int +_rl_isearch_callback (cxt) + _rl_search_cxt *cxt; +{ + int c, r; - RL_UNSETSTATE(RL_STATE_ISEARCH); + c = _rl_search_getchar (cxt); + /* We might want to handle EOF here */ + r = _rl_isearch_dispatch (cxt, cxt->lastc); - return 0; + return (r <= 0) ? _rl_isearch_cleanup (cxt, r) : 0; } +#endif diff --git a/cmd-line-utils/readline/keymaps.c b/cmd-line-utils/readline/keymaps.c index 2be03f7086f..70d0cc08d3f 100644 --- a/cmd-line-utils/readline/keymaps.c +++ b/cmd-line-utils/readline/keymaps.c @@ -20,7 +20,9 @@ Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #if defined (HAVE_STDLIB_H) # include <stdlib.h> diff --git a/cmd-line-utils/readline/kill.c b/cmd-line-utils/readline/kill.c index 4d31a8ff170..031ddf47c5b 100644 --- a/cmd-line-utils/readline/kill.c +++ b/cmd-line-utils/readline/kill.c @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> @@ -76,7 +78,8 @@ static int rl_yank_nth_arg_internal PARAMS((int, int, int)); /* How to say that you only want to save a certain amount of kill material. */ int -rl_set_retained_kills (int num __attribute__((unused))) +rl_set_retained_kills (num) + int num; { return 0; } @@ -292,8 +295,8 @@ rl_backward_kill_line (direction, ignore) /* Kill the whole line, no matter where point is. */ int -rl_kill_full_line (int count __attribute__((unused)), - int ignore __attribute__((unused))) +rl_kill_full_line (count, ignore) + int count, ignore; { rl_begin_undo_group (); rl_point = 0; @@ -310,7 +313,8 @@ rl_kill_full_line (int count __attribute__((unused)), /* This does what C-w does in Unix. We can't prevent people from using behaviour that they expect. */ int -rl_unix_word_rubout (int count, int key __attribute__((unused))) +rl_unix_word_rubout (count, key) + int count, key; { int orig_point; @@ -342,7 +346,8 @@ rl_unix_word_rubout (int count, int key __attribute__((unused))) /* This deletes one filename component in a Unix pathname. That is, it deletes backward to directory separator (`/') or whitespace. */ int -rl_unix_filename_rubout (int count, int key __attribute__((unused))) +rl_unix_filename_rubout (count, key) + int count, key; { int orig_point, c; @@ -385,8 +390,8 @@ rl_unix_filename_rubout (int count, int key __attribute__((unused))) into the line at all, and if you aren't, then you know what you are doing. */ int -rl_unix_line_discard (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_unix_line_discard (count, key) + int count, key; { if (rl_point == 0) rl_ding (); @@ -422,16 +427,16 @@ region_kill_internal (delete) /* Copy the text in the region to the kill ring. */ int -rl_copy_region_to_kill (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_copy_region_to_kill (count, ignore) + int count, ignore; { return (region_kill_internal (0)); } /* Kill the text between the point and mark. */ int -rl_kill_region (int count __attribute__((unused)), - int ignore __attribute__((unused))) +rl_kill_region (count, ignore) + int count, ignore; { int r, npoint; @@ -495,7 +500,8 @@ rl_copy_backward_word (count, key) /* Yank back the last killed text. This ignores arguments. */ int -rl_yank (int count __attribute__((unused)), int ignore __attribute__((unused))) +rl_yank (count, ignore) + int count, ignore; { if (rl_kill_ring == 0) { @@ -513,7 +519,8 @@ rl_yank (int count __attribute__((unused)), int ignore __attribute__((unused))) delete that text from the line, rotate the index down, and yank back some other text. */ int -rl_yank_pop (int count __attribute__((unused)), int key __attribute__((unused))) +rl_yank_pop (count, key) + int count, key; { int l, n; @@ -575,6 +582,7 @@ rl_yank_nth_arg_internal (count, ignore, history_skip) if (!arg || !*arg) { rl_ding (); + FREE (arg); return -1; } diff --git a/cmd-line-utils/readline/macro.c b/cmd-line-utils/readline/macro.c index 8727285e181..00cd58d628c 100644 --- a/cmd-line-utils/readline/macro.c +++ b/cmd-line-utils/readline/macro.c @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> @@ -98,6 +100,8 @@ _rl_with_macro_input (string) int _rl_next_macro_key () { + int c; + if (rl_executing_macro == 0) return (0); @@ -107,7 +111,14 @@ _rl_next_macro_key () return (_rl_next_macro_key ()); } +#if defined (READLINE_CALLBACKS) + c = rl_executing_macro[executing_macro_index++]; + if (RL_ISSTATE (RL_STATE_CALLBACK) && RL_ISSTATE (RL_STATE_READCMD|RL_STATE_MOREINPUT) && rl_executing_macro[executing_macro_index] == 0) + _rl_pop_executing_macro (); + return c; +#else return (rl_executing_macro[executing_macro_index++]); +#endif } /* Save the currently executing macro on a stack of saved macros. */ @@ -189,8 +200,8 @@ _rl_kill_kbd_macro () definition to the end of the existing macro, and start by re-executing the existing macro. */ int -rl_start_kbd_macro (int ignore1 __attribute__((unused)), - int ignore2 __attribute__((unused))) +rl_start_kbd_macro (ignore1, ignore2) + int ignore1, ignore2; { if (RL_ISSTATE (RL_STATE_MACRODEF)) { @@ -214,7 +225,8 @@ rl_start_kbd_macro (int ignore1 __attribute__((unused)), A numeric argument says to execute the macro right now, that many times, counting the definition as the first time. */ int -rl_end_kbd_macro (int count, int ignore __attribute__((unused))) +rl_end_kbd_macro (count, ignore) + int count, ignore; { if (RL_ISSTATE (RL_STATE_MACRODEF) == 0) { @@ -233,7 +245,8 @@ rl_end_kbd_macro (int count, int ignore __attribute__((unused))) /* Execute the most recently defined keyboard macro. COUNT says how many times to execute it. */ int -rl_call_last_kbd_macro (int count, int ignore __attribute__((unused))) +rl_call_last_kbd_macro (count, ignore) + int count, ignore; { if (current_macro == 0) _rl_abort_internal (); diff --git a/cmd-line-utils/readline/mbutil.c b/cmd-line-utils/readline/mbutil.c index 284ea63aae4..17dde53ed7b 100644 --- a/cmd-line-utils/readline/mbutil.c +++ b/cmd-line-utils/readline/mbutil.c @@ -1,6 +1,6 @@ /* mbutil.c -- readline multibyte character utility functions */ -/* Copyright (C) 2001-2004 Free Software Foundation, Inc. +/* Copyright (C) 2001-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -21,16 +21,11 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#ifndef _XOPEN_SOURCE -#define _XOPEN_SOURCE 500 +#if defined (HAVE_CONFIG_H) +# include <config.h> #endif -#include "config_readline.h" - #include <sys/types.h> - -/* To get SuSE 9.3 to define wcwidth() (in wchar.h) */ - #include <fcntl.h> #include "posixjmp.h" @@ -82,18 +77,20 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero) char *string; int seed, count, find_non_zero; { - size_t tmp = 0; + size_t tmp; mbstate_t ps; - int point = 0; + int point; wchar_t wc; + tmp = 0; + memset(&ps, 0, sizeof (mbstate_t)); if (seed < 0) seed = 0; if (count <= 0) return seed; - point = seed + _rl_adjust_point(string, seed, &ps); + point = seed + _rl_adjust_point (string, seed, &ps); /* if this is true, means that seed was not pointed character started byte. So correct the point and consume count */ if (seed < point) @@ -131,15 +128,16 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero) if (find_non_zero) { tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); - while (wcwidth (wc) == 0) + while (tmp > 0 && wcwidth (wc) == 0) { point += tmp; tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); - if (tmp == (size_t)(0) || tmp == (size_t)(-1) || tmp == (size_t)(-2)) + if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp)) break; } } - return point; + + return point; } static int @@ -318,6 +316,28 @@ _rl_is_mbchar_matched (string, seed, end, mbchar, length) return 0; return 1; } + +wchar_t +_rl_char_value (buf, ind) + char *buf; + int ind; +{ + size_t tmp; + wchar_t wc; + mbstate_t ps; + int l; + + if (MB_LEN_MAX == 1 || rl_byte_oriented) + return ((wchar_t) buf[ind]); + l = strlen (buf); + if (ind >= l - 1) + return ((wchar_t) buf[ind]); + memset (&ps, 0, sizeof (mbstate_t)); + tmp = mbrtowc (&wc, buf + ind, l - ind, &ps); + if (MB_INVALIDCH (tmp) || MB_NULLWCH (tmp)) + return ((wchar_t) buf[ind]); + return wc; +} #endif /* HANDLE_MULTIBYTE */ /* Find next `count' characters started byte point of the specified seed. diff --git a/cmd-line-utils/readline/misc.c b/cmd-line-utils/readline/misc.c index c8739d0d750..94ecb25900a 100644 --- a/cmd-line-utils/readline/misc.c +++ b/cmd-line-utils/readline/misc.c @@ -1,6 +1,6 @@ /* misc.c -- miscellaneous bindable readline functions. */ -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #if defined (HAVE_UNISTD_H) # include <unistd.h> @@ -61,6 +63,8 @@ void _rl_free_history_entry PARAMS((HIST_ENTRY *)); to preserve the value of rl_point from line to line. */ int _rl_history_preserve_point = 0; +_rl_arg_cxt _rl_argcxt; + /* Saved target point for when _rl_history_preserve_point is set. Special value of -1 means that point is at the end of the line. */ int _rl_history_saved_point = -1; @@ -71,77 +75,74 @@ int _rl_history_saved_point = -1; /* */ /* **************************************************************** */ -/* Handle C-u style numeric args, as well as M--, and M-digits. */ -static int -rl_digit_loop () +int +_rl_arg_overflow () { - int key, c, sawminus, sawdigits; + if (rl_numeric_arg > 1000000) + { + _rl_argcxt = 0; + rl_explicit_arg = rl_numeric_arg = 0; + rl_ding (); + rl_restore_prompt (); + rl_clear_message (); + RL_UNSETSTATE(RL_STATE_NUMERICARG); + return 1; + } + return 0; +} +void +_rl_arg_init () +{ rl_save_prompt (); - + _rl_argcxt = 0; RL_SETSTATE(RL_STATE_NUMERICARG); - sawminus = sawdigits = 0; - while (1) - { - if (rl_numeric_arg > 1000000) - { - sawdigits = rl_explicit_arg = rl_numeric_arg = 0; - rl_ding (); - rl_restore_prompt (); - rl_clear_message (); - RL_UNSETSTATE(RL_STATE_NUMERICARG); - return 1; - } - rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg); - RL_SETSTATE(RL_STATE_MOREINPUT); - key = c = rl_read_key (); - RL_UNSETSTATE(RL_STATE_MOREINPUT); +} - if (c < 0) - { - _rl_abort_internal (); - return -1; - } +int +_rl_arg_getchar () +{ + int c; - /* If we see a key bound to `universal-argument' after seeing digits, - it ends the argument but is otherwise ignored. */ - if (_rl_keymap[c].type == ISFUNC && - _rl_keymap[c].function == rl_universal_argument) - { - if (sawdigits == 0) - { - rl_numeric_arg *= 4; - continue; - } - else - { - RL_SETSTATE(RL_STATE_MOREINPUT); - key = rl_read_key (); - RL_UNSETSTATE(RL_STATE_MOREINPUT); - rl_restore_prompt (); - rl_clear_message (); - RL_UNSETSTATE(RL_STATE_NUMERICARG); - return (_rl_dispatch (key, _rl_keymap)); - } - } + rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg); + RL_SETSTATE(RL_STATE_MOREINPUT); + c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); - c = UNMETA (c); + return c; +} - if (_rl_digit_p (c)) - { - rl_numeric_arg = rl_explicit_arg ? (rl_numeric_arg * 10) + c - '0' : c - '0'; - sawdigits = rl_explicit_arg = 1; - } - else if (c == '-' && rl_explicit_arg == 0) +/* Process C as part of the current numeric argument. Return -1 if the + argument should be aborted, 0 if we should not read any more chars, and + 1 if we should continue to read chars. */ +int +_rl_arg_dispatch (cxt, c) + _rl_arg_cxt cxt; + int c; +{ + int key, r; + + key = c; + + /* If we see a key bound to `universal-argument' after seeing digits, + it ends the argument but is otherwise ignored. */ + if (_rl_keymap[c].type == ISFUNC && _rl_keymap[c].function == rl_universal_argument) + { + if ((cxt & NUM_SAWDIGITS) == 0) { - rl_numeric_arg = sawminus = 1; - rl_arg_sign = -1; + rl_numeric_arg *= 4; + return 1; } + else if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + _rl_argcxt |= NUM_READONE; + return 0; /* XXX */ + } else { - /* Make M-- command equivalent to M--1 command. */ - if (sawminus && rl_numeric_arg == 1 && rl_explicit_arg == 0) - rl_explicit_arg = 1; + RL_SETSTATE(RL_STATE_MOREINPUT); + key = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); rl_restore_prompt (); rl_clear_message (); RL_UNSETSTATE(RL_STATE_NUMERICARG); @@ -149,45 +150,144 @@ rl_digit_loop () } } - /*NOTREACHED*/ -} + c = UNMETA (c); -/* Add the current digit to the argument in progress. */ -int -rl_digit_argument (int ignore __attribute__((unused)), int key) -{ - rl_execute_next (key); - return (rl_digit_loop ()); + if (_rl_digit_p (c)) + { + r = _rl_digit_value (c); + rl_numeric_arg = rl_explicit_arg ? (rl_numeric_arg * 10) + r : r; + rl_explicit_arg = 1; + _rl_argcxt |= NUM_SAWDIGITS; + } + else if (c == '-' && rl_explicit_arg == 0) + { + rl_numeric_arg = 1; + _rl_argcxt |= NUM_SAWMINUS; + rl_arg_sign = -1; + } + else + { + /* Make M-- command equivalent to M--1 command. */ + if ((_rl_argcxt & NUM_SAWMINUS) && rl_numeric_arg == 1 && rl_explicit_arg == 0) + rl_explicit_arg = 1; + rl_restore_prompt (); + rl_clear_message (); + RL_UNSETSTATE(RL_STATE_NUMERICARG); + + r = _rl_dispatch (key, _rl_keymap); + if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + /* At worst, this will cause an extra redisplay. Otherwise, + we have to wait until the next character comes in. */ + if (rl_done == 0) + (*rl_redisplay_function) (); + r = 0; + } + return r; + } + + return 1; } -/* What to do when you abort reading an argument. */ -int -rl_discard_argument () +/* Handle C-u style numeric args, as well as M--, and M-digits. */ +static int +rl_digit_loop () { - rl_ding (); - rl_clear_message (); - _rl_init_argument (); - return 0; + int c, r; + + while (1) + { + if (_rl_arg_overflow ()) + return 1; + + c = _rl_arg_getchar (); + + if (c < 0) + { + _rl_abort_internal (); + return -1; + } + + r = _rl_arg_dispatch (_rl_argcxt, c); + if (r <= 0 || (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)) + break; + } + + return r; } /* Create a default argument. */ -int -_rl_init_argument () +void +_rl_reset_argument () { rl_numeric_arg = rl_arg_sign = 1; rl_explicit_arg = 0; - return 0; + _rl_argcxt = 0; +} + +/* Start a numeric argument with initial value KEY */ +int +rl_digit_argument (ignore, key) + int ignore, key; +{ + _rl_arg_init (); + if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + _rl_arg_dispatch (_rl_argcxt, key); + rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg); + return 0; + } + else + { + rl_execute_next (key); + return (rl_digit_loop ()); + } } /* C-u, universal argument. Multiply the current argument by 4. Read a key. If the key has nothing to do with arguments, then dispatch on it. If the key is the abort character then abort. */ int -rl_universal_argument (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_universal_argument (count, key) + int count, key; { + _rl_arg_init (); rl_numeric_arg *= 4; - return (rl_digit_loop ()); + + return (RL_ISSTATE (RL_STATE_CALLBACK) ? 0 : rl_digit_loop ()); +} + +int +_rl_arg_callback (cxt) + _rl_arg_cxt cxt; +{ + int c, r; + + c = _rl_arg_getchar (); + + if (_rl_argcxt & NUM_READONE) + { + _rl_argcxt &= ~NUM_READONE; + rl_restore_prompt (); + rl_clear_message (); + RL_UNSETSTATE(RL_STATE_NUMERICARG); + rl_execute_next (c); + return 0; + } + + r = _rl_arg_dispatch (cxt, c); + return (r != 1); +} + +/* What to do when you abort reading an argument. */ +int +rl_discard_argument () +{ + rl_ding (); + rl_clear_message (); + _rl_reset_argument (); + + return 0; } /* **************************************************************** */ @@ -222,8 +322,10 @@ _rl_free_history_entry (entry) { if (entry == 0) return; - if (entry->line) - free (entry->line); + + FREE (entry->line); + FREE (entry->timestamp); + free (entry); } @@ -239,6 +341,7 @@ rl_maybe_replace_line () { temp = replace_history_entry (where_history (), rl_line_buffer, (histdata_t)rl_undo_list); free (temp->line); + FREE (temp->timestamp); free (temp); } return 0; @@ -271,14 +374,9 @@ rl_maybe_save_line () { _rl_saved_line_for_history = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY)); _rl_saved_line_for_history->line = savestring (rl_line_buffer); + _rl_saved_line_for_history->timestamp = (char *)NULL; _rl_saved_line_for_history->data = (char *)rl_undo_list; } - else if (STREQ (rl_line_buffer, _rl_saved_line_for_history->line) == 0) - { - free (_rl_saved_line_for_history->line); - _rl_saved_line_for_history->line = savestring (rl_line_buffer); - _rl_saved_line_for_history->data = (char *)rl_undo_list; /* XXX possible memleak */ - } return 0; } @@ -313,7 +411,9 @@ _rl_history_set_point () } void -rl_replace_from_history (HIST_ENTRY *entry, int flags __attribute__((unused))) +rl_replace_from_history (entry, flags) + HIST_ENTRY *entry; + int flags; /* currently unused */ { /* Can't call with `1' because rl_undo_list might point to an undo list from a history entry, just like we're setting up here. */ @@ -339,15 +439,16 @@ rl_replace_from_history (HIST_ENTRY *entry, int flags __attribute__((unused))) /* Meta-< goes to the start of the history. */ int -rl_beginning_of_history (int count __attribute__((unused)), int key) +rl_beginning_of_history (count, key) + int count, key; { return (rl_get_previous_history (1 + where_history (), key)); } /* Meta-> goes to the end of the history. (The current line). */ int -rl_end_of_history (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_end_of_history (count, key) + int count, key; { rl_maybe_replace_line (); using_history (); @@ -451,7 +552,8 @@ rl_get_previous_history (count, key) /* **************************************************************** */ /* How to toggle back and forth between editing modes. */ int -rl_vi_editing_mode (int count __attribute__((unused)), int key) +rl_vi_editing_mode (count, key) + int count, key; { #if defined (VI_MODE) _rl_set_insert_mode (RL_IM_INSERT, 1); /* vi mode ignores insert mode */ @@ -463,8 +565,8 @@ rl_vi_editing_mode (int count __attribute__((unused)), int key) } int -rl_emacs_editing_mode (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_emacs_editing_mode (count, key) + int count, key; { rl_editing_mode = emacs_mode; _rl_set_insert_mode (RL_IM_INSERT, 1); /* emacs mode default is insert mode */ @@ -474,7 +576,8 @@ rl_emacs_editing_mode (int count __attribute__((unused)), /* Function for the rest of the library to use to set insert/overwrite mode. */ void -_rl_set_insert_mode (int im, int force __attribute__((unused))) +_rl_set_insert_mode (im, force) + int im, force; { #ifdef CURSOR_MODE _rl_set_cursor (im, force); @@ -486,7 +589,8 @@ _rl_set_insert_mode (int im, int force __attribute__((unused))) /* Toggle overwrite mode. A positive explicit argument selects overwrite mode. A negative or zero explicit argument selects insert mode. */ int -rl_overwrite_mode (int count, int key __attribute__((unused))) +rl_overwrite_mode (count, key) + int count, key; { if (rl_explicit_arg == 0) _rl_set_insert_mode (rl_insert_mode ^ 1, 0); diff --git a/cmd-line-utils/readline/nls.c b/cmd-line-utils/readline/nls.c index 73ad0227195..bcee87561aa 100644 --- a/cmd-line-utils/readline/nls.c +++ b/cmd-line-utils/readline/nls.c @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> @@ -111,7 +113,7 @@ _rl_init_eightbit () if (lspec == 0 || *lspec == 0) lspec = setlocale (LC_CTYPE, (char *)NULL); if (lspec == 0) - lspec = (char*) ""; + lspec = ""; t = setlocale (LC_CTYPE, lspec); if (t && *t && (t[0] != 'C' || t[1]) && (STREQ (t, "POSIX") == 0)) diff --git a/cmd-line-utils/readline/parens.c b/cmd-line-utils/readline/parens.c index bb893ac1bfb..737f7675e93 100644 --- a/cmd-line-utils/readline/parens.c +++ b/cmd-line-utils/readline/parens.c @@ -27,7 +27,9 @@ #include "rlconf.h" -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <stdio.h> #include <sys/types.h> diff --git a/cmd-line-utils/readline/readline.c b/cmd-line-utils/readline/readline.c index dd3724a86d7..c2b74006b05 100644 --- a/cmd-line-utils/readline/readline.c +++ b/cmd-line-utils/readline/readline.c @@ -1,7 +1,7 @@ /* readline.c -- a general facility for reading lines of input with emacs style editing and completion. */ -/* Copyright (C) 1987-2002 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -22,7 +22,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> #include "posixstat.h" @@ -47,6 +49,11 @@ #include <stdio.h> #include "posixjmp.h" +#include <errno.h> + +#if !defined (errno) +extern int errno; +#endif /* !errno */ /* System-specific feature definitions and include files. */ #include "rldefs.h" @@ -66,11 +73,11 @@ #include "xmalloc.h" #ifndef RL_LIBRARY_VERSION -# define RL_LIBRARY_VERSION "5.0" +# define RL_LIBRARY_VERSION "5.1" #endif #ifndef RL_READLINE_VERSION -# define RL_READLINE_VERSION 0x0500 +# define RL_READLINE_VERSION 0x0501 #endif extern void _rl_free_history_entry PARAMS((HIST_ENTRY *)); @@ -83,9 +90,10 @@ static void bind_arrow_keys_internal PARAMS((Keymap)); static void bind_arrow_keys PARAMS((void)); static void readline_default_bindings PARAMS((void)); -#ifdef NOT_USED static void reset_default_bindings PARAMS((void)); -#endif + +static int _rl_subseq_result PARAMS((int, Keymap, int, int)); +static int _rl_subseq_getchar PARAMS((int)); /* **************************************************************** */ /* */ @@ -104,6 +112,7 @@ int rl_gnu_readline_p = 1; By default, it is the standard emacs keymap. */ Keymap _rl_keymap = emacs_standard_keymap; + /* The current style of editing. */ int rl_editing_mode = emacs_mode; @@ -219,6 +228,9 @@ char *_rl_comment_begin; /* Keymap holding the function currently being executed. */ Keymap rl_executing_keymap; +/* Keymap we're currently using to dispatch. */ +Keymap _rl_dispatching_keymap; + /* Non-zero means to erase entire line, including prompt, on empty input lines. */ int rl_erase_empty_line = 0; @@ -230,6 +242,9 @@ int rl_num_chars_to_read; char *rl_line_buffer = (char *)NULL; int rl_line_buffer_len = 0; +/* Key sequence `contexts' */ +_rl_keyseq_cxt *_rl_kscxt = 0; + /* Forward declarations used by the display, termcap, and history code. */ /* **************************************************************** */ @@ -251,6 +266,10 @@ int _rl_convert_meta_chars_to_ascii = 1; rather than as a meta-prefixed escape sequence. */ int _rl_output_meta_chars = 0; +/* Non-zero means to look at the termios special characters and bind + them to equivalent readline functions at startup. */ +int _rl_bind_stty_chars = 1; + /* **************************************************************** */ /* */ /* Top Level Functions */ @@ -268,6 +287,7 @@ rl_set_prompt (prompt) { FREE (rl_prompt); rl_prompt = prompt ? savestring (prompt) : (char *)NULL; + rl_display_prompt = rl_prompt ? rl_prompt : ""; rl_visible_prompt_length = rl_expand_prompt (rl_prompt); return 0; @@ -291,14 +311,16 @@ readline (prompt) rl_set_prompt (prompt); rl_initialize (); - (*rl_prep_term_function) (_rl_meta_flag); + if (rl_prep_term_function) + (*rl_prep_term_function) (_rl_meta_flag); #if defined (HANDLE_SIGNALS) rl_set_signals (); #endif value = readline_internal (); - (*rl_deprep_term_function) (); + if (rl_deprep_term_function) + (*rl_deprep_term_function) (); #if defined (HANDLE_SIGNALS) rl_clear_signals (); @@ -388,6 +410,36 @@ readline_internal_teardown (eof) return (eof ? (char *)NULL : savestring (the_line)); } +void +_rl_internal_char_cleanup () +{ +#if defined (VI_MODE) + /* In vi mode, when you exit insert mode, the cursor moves back + over the previous character. We explicitly check for that here. */ + if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap) + rl_vi_check (); +#endif /* VI_MODE */ + + if (rl_num_chars_to_read && rl_end >= rl_num_chars_to_read) + { + (*rl_redisplay_function) (); + _rl_want_redisplay = 0; + rl_newline (1, '\n'); + } + + if (rl_done == 0) + { + (*rl_redisplay_function) (); + _rl_want_redisplay = 0; + } + + /* If the application writer has told us to erase the entire line if + the only character typed was something bound to rl_newline, do so. */ + if (rl_erase_empty_line && rl_done && rl_last_func == rl_newline && + rl_point == 0 && rl_end == 0) + _rl_erase_entire_line (); +} + STATIC_CALLBACK int #if defined (READLINE_CALLBACKS) readline_internal_char () @@ -410,12 +462,21 @@ readline_internal_charloop () code = setjmp (readline_top_level); if (code) - (*rl_redisplay_function) (); + { + (*rl_redisplay_function) (); + _rl_want_redisplay = 0; + /* If we get here, we're not being called from something dispatched + from _rl_callback_read_char(), which sets up its own value of + readline_top_level (saving and restoring the old, of course), so + we can just return here. */ + if (RL_ISSTATE (RL_STATE_CALLBACK)) + return (0); + } if (rl_pending_input == 0) { /* Then initialize the argument and number of keys read. */ - _rl_init_argument (); + _rl_reset_argument (); rl_key_sequence_length = 0; } @@ -423,6 +484,20 @@ readline_internal_charloop () c = rl_read_key (); RL_UNSETSTATE(RL_STATE_READCMD); + /* look at input.c:rl_getc() for the circumstances under which this will + be returned; punt immediately on read error without converting it to + a newline. */ + if (c == READERR) + { +#if defined (READLINE_CALLBACKS) + RL_SETSTATE(RL_STATE_DONE); + return (rl_done = 1); +#else + eof_found = 1; + break; +#endif + } + /* EOF typed to a non-blank line is a <NL>. */ if (c == EOF && rl_end) c = NEWLINE; @@ -449,27 +524,7 @@ readline_internal_charloop () if (rl_pending_input == 0 && lk == _rl_last_command_was_kill) _rl_last_command_was_kill = 0; -#if defined (VI_MODE) - /* In vi mode, when you exit insert mode, the cursor moves back - over the previous character. We explicitly check for that here. */ - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap) - rl_vi_check (); -#endif /* VI_MODE */ - - if (rl_num_chars_to_read && rl_end >= rl_num_chars_to_read) - { - (*rl_redisplay_function) (); - rl_newline (1, '\n'); - } - - if (rl_done == 0) - (*rl_redisplay_function) (); - - /* If the application writer has told us to erase the entire line if - the only character typed was something bound to rl_newline, do so. */ - if (rl_erase_empty_line && rl_done && rl_last_func == rl_newline && - rl_point == 0 && rl_end == 0) - _rl_erase_entire_line (); + _rl_internal_char_cleanup (); #if defined (READLINE_CALLBACKS) return 0; @@ -519,6 +574,107 @@ _rl_set_the_line () the_line = rl_line_buffer; } +#if defined (READLINE_CALLBACKS) +_rl_keyseq_cxt * +_rl_keyseq_cxt_alloc () +{ + _rl_keyseq_cxt *cxt; + + cxt = (_rl_keyseq_cxt *)xmalloc (sizeof (_rl_keyseq_cxt)); + + cxt->flags = cxt->subseq_arg = cxt->subseq_retval = 0; + + cxt->okey = 0; + cxt->ocxt = _rl_kscxt; + cxt->childval = 42; /* sentinel value */ + + return cxt; +} + +void +_rl_keyseq_cxt_dispose (cxt) + _rl_keyseq_cxt *cxt; +{ + free (cxt); +} + +void +_rl_keyseq_chain_dispose () +{ + _rl_keyseq_cxt *cxt; + + while (_rl_kscxt) + { + cxt = _rl_kscxt; + _rl_kscxt = _rl_kscxt->ocxt; + _rl_keyseq_cxt_dispose (cxt); + } +} +#endif + +static int +_rl_subseq_getchar (key) + int key; +{ + int k; + + if (key == ESC) + RL_SETSTATE(RL_STATE_METANEXT); + RL_SETSTATE(RL_STATE_MOREINPUT); + k = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + if (key == ESC) + RL_UNSETSTATE(RL_STATE_METANEXT); + + return k; +} + +#if defined (READLINE_CALLBACKS) +int +_rl_dispatch_callback (cxt) + _rl_keyseq_cxt *cxt; +{ + int nkey, r; + + /* For now */ +#if 1 + /* The first time this context is used, we want to read input and dispatch + on it. When traversing the chain of contexts back `up', we want to use + the value from the next context down. We're simulating recursion using + a chain of contexts. */ + if ((cxt->flags & KSEQ_DISPATCHED) == 0) + { + nkey = _rl_subseq_getchar (cxt->okey); + r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg); + cxt->flags |= KSEQ_DISPATCHED; + } + else + r = cxt->childval; +#else + r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg); +#endif + + /* For now */ + r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ)); + + if (r == 0) /* success! */ + { + _rl_keyseq_chain_dispose (); + RL_UNSETSTATE (RL_STATE_MULTIKEY); + return r; + } + + if (r != -3) /* magic value that says we added to the chain */ + _rl_kscxt = cxt->ocxt; + if (_rl_kscxt) + _rl_kscxt->childval = r; + if (r != -3) + _rl_keyseq_cxt_dispose (cxt); + + return r; +} +#endif /* READLINE_CALLBACKS */ + /* Do the command associated with KEY in MAP. If the associated command is really a keymap, then read another key, and dispatch into that map. */ @@ -527,6 +683,7 @@ _rl_dispatch (key, map) register int key; Keymap map; { + _rl_dispatching_keymap = map; return _rl_dispatch_subseq (key, map, 0); } @@ -539,6 +696,9 @@ _rl_dispatch_subseq (key, map, got_subseq) int r, newkey; char *macro; rl_command_func_t *func; +#if defined (READLINE_CALLBACKS) + _rl_keyseq_cxt *cxt; +#endif if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii) { @@ -572,13 +732,9 @@ _rl_dispatch_subseq (key, map, got_subseq) rl_executing_keymap = map; -#if 0 - _rl_suppress_redisplay = (map[key].function == rl_insert) && _rl_input_available (); -#endif - rl_dispatching = 1; RL_SETSTATE(RL_STATE_DISPATCHING); - r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key); + (*map[key].function)(rl_numeric_arg * rl_arg_sign, key); RL_UNSETSTATE(RL_STATE_DISPATCHING); rl_dispatching = 0; @@ -607,6 +763,10 @@ _rl_dispatch_subseq (key, map, got_subseq) } else { +#if defined (READLINE_CALLBACKS) + RL_UNSETSTATE (RL_STATE_MULTIKEY); + _rl_keyseq_chain_dispose (); +#endif _rl_abort_internal (); return -1; } @@ -628,58 +788,43 @@ _rl_dispatch_subseq (key, map, got_subseq) #endif rl_key_sequence_length++; + _rl_dispatching_keymap = FUNCTION_TO_KEYMAP (map, key); - if (key == ESC) - RL_SETSTATE(RL_STATE_METANEXT); - RL_SETSTATE(RL_STATE_MOREINPUT); - newkey = rl_read_key (); - RL_UNSETSTATE(RL_STATE_MOREINPUT); - if (key == ESC) - RL_UNSETSTATE(RL_STATE_METANEXT); + /* Allocate new context here. Use linked contexts (linked through + cxt->ocxt) to simulate recursion */ +#if defined (READLINE_CALLBACKS) + if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + /* Return 0 only the first time, to indicate success to + _rl_callback_read_char. The rest of the time, we're called + from _rl_dispatch_callback, so we return 3 to indicate + special handling is necessary. */ + r = RL_ISSTATE (RL_STATE_MULTIKEY) ? -3 : 0; + cxt = _rl_keyseq_cxt_alloc (); + + if (got_subseq) + cxt->flags |= KSEQ_SUBSEQ; + cxt->okey = key; + cxt->oldmap = map; + cxt->dmap = _rl_dispatching_keymap; + cxt->subseq_arg = got_subseq || cxt->dmap[ANYOTHERKEY].function; + + RL_SETSTATE (RL_STATE_MULTIKEY); + _rl_kscxt = cxt; + + return r; /* don't indicate immediate success */ + } +#endif + newkey = _rl_subseq_getchar (key); if (newkey < 0) { _rl_abort_internal (); return -1; } - r = _rl_dispatch_subseq (newkey, FUNCTION_TO_KEYMAP (map, key), got_subseq || map[ANYOTHERKEY].function); - - if (r == -2) - /* We didn't match anything, and the keymap we're indexed into - shadowed a function previously bound to that prefix. Call - the function. The recursive call to _rl_dispatch_subseq has - already taken care of pushing any necessary input back onto - the input queue with _rl_unget_char. */ - { -#if 0 - r = _rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key)); -#else - /* XXX - experimental code -- might never be executed. Save - for later. */ - Keymap m = FUNCTION_TO_KEYMAP (map, key); - int type = m[ANYOTHERKEY].type; - func = m[ANYOTHERKEY].function; - if (type == ISFUNC && func == rl_do_lowercase_version) - r = _rl_dispatch (_rl_to_lower (key), map); - else - r = _rl_dispatch (ANYOTHERKEY, m); -#endif - } - else if (r && map[ANYOTHERKEY].function) - { - /* We didn't match (r is probably -1), so return something to - tell the caller that it should try ANYOTHERKEY for an - overridden function. */ - _rl_unget_char (key); - return -2; - } - else if (r && got_subseq) - { - /* OK, back up the chain. */ - _rl_unget_char (key); - return -1; - } + r = _rl_dispatch_subseq (newkey, _rl_dispatching_keymap, got_subseq || map[ANYOTHERKEY].function); + return _rl_subseq_result (r, map, key, got_subseq); } else { @@ -703,9 +848,69 @@ _rl_dispatch_subseq (key, map, got_subseq) _rl_vi_textmod_command (key)) _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); #endif + return (r); } +static int +_rl_subseq_result (r, map, key, got_subseq) + int r; + Keymap map; + int key, got_subseq; +{ + Keymap m; + int type, nt; + rl_command_func_t *func, *nf; + + if (r == -2) + /* We didn't match anything, and the keymap we're indexed into + shadowed a function previously bound to that prefix. Call + the function. The recursive call to _rl_dispatch_subseq has + already taken care of pushing any necessary input back onto + the input queue with _rl_unget_char. */ + { + m = _rl_dispatching_keymap; + type = m[ANYOTHERKEY].type; + func = m[ANYOTHERKEY].function; + if (type == ISFUNC && func == rl_do_lowercase_version) + r = _rl_dispatch (_rl_to_lower (key), map); + else if (type == ISFUNC && func == rl_insert) + { + /* If the function that was shadowed was self-insert, we + somehow need a keymap with map[key].func == self-insert. + Let's use this one. */ + nt = m[key].type; + nf = m[key].function; + + m[key].type = type; + m[key].function = func; + r = _rl_dispatch (key, m); + m[key].type = nt; + m[key].function = nf; + } + else + r = _rl_dispatch (ANYOTHERKEY, m); + } + else if (r && map[ANYOTHERKEY].function) + { + /* We didn't match (r is probably -1), so return something to + tell the caller that it should try ANYOTHERKEY for an + overridden function. */ + _rl_unget_char (key); + _rl_dispatching_keymap = map; + return -2; + } + else if (r && got_subseq) + { + /* OK, back up the chain. */ + _rl_unget_char (key); + _rl_dispatching_keymap = map; + return -1; + } + + return r; +} + /* **************************************************************** */ /* */ /* Initializations */ @@ -863,19 +1068,21 @@ readline_initialize_everything () static void readline_default_bindings () { - rl_tty_set_default_bindings (_rl_keymap); + if (_rl_bind_stty_chars) + rl_tty_set_default_bindings (_rl_keymap); } /* Reset the default bindings for the terminal special characters we're interested in back to rl_insert and read the new ones. */ -#ifdef NOT_USED static void reset_default_bindings () { - rl_tty_unset_default_bindings (_rl_keymap); - rl_tty_set_default_bindings (_rl_keymap); + if (_rl_bind_stty_chars) + { + rl_tty_unset_default_bindings (_rl_keymap); + rl_tty_set_default_bindings (_rl_keymap); + } } -#endif /* Bind some common arrow key sequences in MAP. */ static void @@ -908,6 +1115,13 @@ bind_arrow_keys_internal (map) rl_bind_keyseq_if_unbound ("\033OH", rl_beg_of_line); rl_bind_keyseq_if_unbound ("\033OF", rl_end_of_line); +#if defined (__MINGW32__) + rl_bind_keyseq_if_unbound ("\340H", rl_get_previous_history); + rl_bind_keyseq_if_unbound ("\340P", rl_get_next_history); + rl_bind_keyseq_if_unbound ("\340M", rl_forward_char); + rl_bind_keyseq_if_unbound ("\340K", rl_backward_char); +#endif + _rl_keymap = xkeymap; } diff --git a/cmd-line-utils/readline/readline.h b/cmd-line-utils/readline/readline.h index 222b317c4a8..b71bf98d204 100644 --- a/cmd-line-utils/readline/readline.h +++ b/cmd-line-utils/readline/readline.h @@ -1,6 +1,6 @@ /* Readline.h -- the names of functions callable from within readline. */ -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -40,9 +40,9 @@ extern "C" { #endif /* Hex-encoded Readline version number. */ -#define RL_READLINE_VERSION 0x0500 /* Readline 5.0 */ +#define RL_READLINE_VERSION 0x0502 /* Readline 5.2 */ #define RL_VERSION_MAJOR 5 -#define RL_VERSION_MINOR 0 +#define RL_VERSION_MINOR 2 /* Readline data structures. */ @@ -241,6 +241,7 @@ extern int rl_vi_column PARAMS((int, int)); extern int rl_vi_delete_to PARAMS((int, int)); extern int rl_vi_change_to PARAMS((int, int)); extern int rl_vi_yank_to PARAMS((int, int)); +extern int rl_vi_rubout PARAMS((int, int)); extern int rl_vi_delete PARAMS((int, int)); extern int rl_vi_back_to_indent PARAMS((int, int)); extern int rl_vi_first_print PARAMS((int, int)); @@ -302,6 +303,8 @@ extern int rl_bind_keyseq_in_map PARAMS((const char *, rl_command_func_t *, Keym extern int rl_bind_keyseq_if_unbound PARAMS((const char *, rl_command_func_t *)); extern int rl_bind_keyseq_if_unbound_in_map PARAMS((const char *, rl_command_func_t *, Keymap)); extern int rl_generic_bind PARAMS((int, const char *, char *, Keymap)); + +extern char *rl_variable_value PARAMS((const char *)); extern int rl_variable_bind PARAMS((const char *, const char *)); /* Backwards compatibility, use rl_bind_keyseq_in_map instead. */ @@ -401,6 +404,7 @@ extern int rl_reset_terminal PARAMS((const char *)); extern void rl_resize_terminal PARAMS((void)); extern void rl_set_screen_size PARAMS((int, int)); extern void rl_get_screen_size PARAMS((int *, int *)); +extern void rl_reset_screen_size PARAMS((void)); extern char *rl_get_termcap PARAMS((const char *)); @@ -528,6 +532,11 @@ extern const char *rl_terminal_name; extern FILE *rl_instream; extern FILE *rl_outstream; +/* If non-zero, Readline gives values of LINES and COLUMNS from the environment + greater precedence than values fetched from the kernel when computing the + screen dimensions. */ +extern int rl_prefer_env_winsize; + /* If non-zero, then this is the address of a function to call just before readline_internal () prints the first prompt. */ extern rl_hook_func_t *rl_startup_hook; @@ -748,6 +757,10 @@ extern int rl_ignore_completion_duplicates; completion character will be inserted as any other. */ extern int rl_inhibit_completion; +/* Input error; can be returned by (*rl_getc_function) if readline is reading + a top-level command (RL_ISSTATE (RL_STATE_READCMD)). */ +#define READERR (-2) + /* Definitions available for use by readline clients. */ #define RL_PROMPT_START_IGNORE '\001' #define RL_PROMPT_END_IGNORE '\002' @@ -759,29 +772,33 @@ extern int rl_inhibit_completion; #define MULT_MATCH 2 /* Possible state values for rl_readline_state */ -#define RL_STATE_NONE 0x00000 /* no state; before first call */ - -#define RL_STATE_INITIALIZING 0x00001 /* initializing */ -#define RL_STATE_INITIALIZED 0x00002 /* initialization done */ -#define RL_STATE_TERMPREPPED 0x00004 /* terminal is prepped */ -#define RL_STATE_READCMD 0x00008 /* reading a command key */ -#define RL_STATE_METANEXT 0x00010 /* reading input after ESC */ -#define RL_STATE_DISPATCHING 0x00020 /* dispatching to a command */ -#define RL_STATE_MOREINPUT 0x00040 /* reading more input in a command function */ -#define RL_STATE_ISEARCH 0x00080 /* doing incremental search */ -#define RL_STATE_NSEARCH 0x00100 /* doing non-inc search */ -#define RL_STATE_SEARCH 0x00200 /* doing a history search */ -#define RL_STATE_NUMERICARG 0x00400 /* reading numeric argument */ -#define RL_STATE_MACROINPUT 0x00800 /* getting input from a macro */ -#define RL_STATE_MACRODEF 0x01000 /* defining keyboard macro */ -#define RL_STATE_OVERWRITE 0x02000 /* overwrite mode */ -#define RL_STATE_COMPLETING 0x04000 /* doing completion */ -#define RL_STATE_SIGHANDLER 0x08000 /* in readline sighandler */ -#define RL_STATE_UNDOING 0x10000 /* doing an undo */ -#define RL_STATE_INPUTPENDING 0x20000 /* rl_execute_next called */ -#define RL_STATE_TTYCSAVED 0x40000 /* tty special chars saved */ - -#define RL_STATE_DONE 0x80000 /* done; accepted line */ +#define RL_STATE_NONE 0x000000 /* no state; before first call */ + +#define RL_STATE_INITIALIZING 0x000001 /* initializing */ +#define RL_STATE_INITIALIZED 0x000002 /* initialization done */ +#define RL_STATE_TERMPREPPED 0x000004 /* terminal is prepped */ +#define RL_STATE_READCMD 0x000008 /* reading a command key */ +#define RL_STATE_METANEXT 0x000010 /* reading input after ESC */ +#define RL_STATE_DISPATCHING 0x000020 /* dispatching to a command */ +#define RL_STATE_MOREINPUT 0x000040 /* reading more input in a command function */ +#define RL_STATE_ISEARCH 0x000080 /* doing incremental search */ +#define RL_STATE_NSEARCH 0x000100 /* doing non-inc search */ +#define RL_STATE_SEARCH 0x000200 /* doing a history search */ +#define RL_STATE_NUMERICARG 0x000400 /* reading numeric argument */ +#define RL_STATE_MACROINPUT 0x000800 /* getting input from a macro */ +#define RL_STATE_MACRODEF 0x001000 /* defining keyboard macro */ +#define RL_STATE_OVERWRITE 0x002000 /* overwrite mode */ +#define RL_STATE_COMPLETING 0x004000 /* doing completion */ +#define RL_STATE_SIGHANDLER 0x008000 /* in readline sighandler */ +#define RL_STATE_UNDOING 0x010000 /* doing an undo */ +#define RL_STATE_INPUTPENDING 0x020000 /* rl_execute_next called */ +#define RL_STATE_TTYCSAVED 0x040000 /* tty special chars saved */ +#define RL_STATE_CALLBACK 0x080000 /* using the callback interface */ +#define RL_STATE_VIMOTION 0x100000 /* reading vi motion arg */ +#define RL_STATE_MULTIKEY 0x200000 /* reading multiple-key command */ +#define RL_STATE_VICMDONCE 0x400000 /* entered vi command mode at least once */ + +#define RL_STATE_DONE 0x800000 /* done; accepted line */ #define RL_SETSTATE(x) (rl_readline_state |= (x)) #define RL_UNSETSTATE(x) (rl_readline_state &= ~(x)) diff --git a/cmd-line-utils/readline/rlconf.h b/cmd-line-utils/readline/rlconf.h index c651fd8b41f..ff3929e0bf5 100644 --- a/cmd-line-utils/readline/rlconf.h +++ b/cmd-line-utils/readline/rlconf.h @@ -37,9 +37,12 @@ /* Ugly but working hack for binding prefix meta. */ #define PREFIX_META_HACK -/* The final, last-ditch effort file name for an init file. */ +/* The next-to-last-ditch effort file name for a user-specific init file. */ #define DEFAULT_INPUTRC "~/.inputrc" +/* The ultimate last-ditch filenname for an init file -- system-wide. */ +#define SYS_INPUTRC "/etc/inputrc" + /* If defined, expand tabs to spaces. */ #define DISPLAY_TABS diff --git a/cmd-line-utils/readline/rldefs.h b/cmd-line-utils/readline/rldefs.h index 0d600407b5f..0f6c87446dd 100644 --- a/cmd-line-utils/readline/rldefs.h +++ b/cmd-line-utils/readline/rldefs.h @@ -2,7 +2,7 @@ for readline. This should be included after any files that define system-specific constants like _POSIX_VERSION or USG. */ -/* Copyright (C) 1987,1989 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file contains the Readline Library (the Library), a set of routines for providing Emacs style line input to programs that ask @@ -38,7 +38,11 @@ # if defined (HAVE_TERMIO_H) # define TERMIO_TTY_DRIVER # else -# define NEW_TTY_DRIVER +# if !defined (__MINGW32__) +# define NEW_TTY_DRIVER +# else +# define NO_TTY_DRIVER +# endif # endif #endif diff --git a/cmd-line-utils/readline/rlmbutil.h b/cmd-line-utils/readline/rlmbutil.h index 77cc026e3e8..dd317e2a090 100644 --- a/cmd-line-utils/readline/rlmbutil.h +++ b/cmd-line-utils/readline/rlmbutil.h @@ -32,10 +32,19 @@ /* For platforms which support the ISO C amendement 1 functionality we support user defined character classes. */ /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */ -#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H) +#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H) && defined (HAVE_LOCALE_H) # include <wchar.h> # include <wctype.h> -# if defined (HAVE_MBSRTOWCS) && defined (HAVE_MBRTOWC) && defined (HAVE_MBRLEN) && defined (HAVE_WCWIDTH) +# if defined (HAVE_ISWCTYPE) && \ + defined (HAVE_ISWLOWER) && \ + defined (HAVE_ISWUPPER) && \ + defined (HAVE_MBSRTOWCS) && \ + defined (HAVE_MBRTOWC) && \ + defined (HAVE_MBRLEN) && \ + defined (HAVE_TOWLOWER) && \ + defined (HAVE_TOWUPPER) && \ + defined (HAVE_WCHAR_T) && \ + defined (HAVE_WCWIDTH) /* system is supposed to support XPG5 */ # define HANDLE_MULTIBYTE 1 # endif @@ -97,6 +106,21 @@ extern int _rl_read_mbstring PARAMS((int, char *, int)); extern int _rl_is_mbchar_matched PARAMS((char *, int, int, char *, int)); +extern wchar_t _rl_char_value PARAMS((char *, int)); +extern int _rl_walphabetic PARAMS((wchar_t)); + +#define _rl_to_wupper(wc) (iswlower (wc) ? towupper (wc) : (wc)) +#define _rl_to_wlower(wc) (iswupper (wc) ? towlower (wc) : (wc)) + +#define MB_NEXTCHAR(b,s,c,f) \ + ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) \ + ? _rl_find_next_mbchar ((b), (s), (c), (f)) \ + : ((s) + (c))) +#define MB_PREVCHAR(b,s,f) \ + ((MB_CUR_MAX > 1 && rl_byte_oriented == 0) \ + ? _rl_find_prev_mbchar ((b), (s), (f)) \ + : ((s) - 1)) + #define MB_INVALIDCH(x) ((x) == (size_t)-1 || (x) == (size_t)-2) #define MB_NULLWCH(x) ((x) == 0) @@ -111,6 +135,16 @@ extern int _rl_is_mbchar_matched PARAMS((char *, int, int, char *, int)); #define _rl_find_prev_mbchar(b, i, f) (((i) == 0) ? (i) : ((i) - 1)) #define _rl_find_next_mbchar(b, i1, i2, f) ((i1) + (i2)) +#define _rl_char_value(buf,ind) ((buf)[(ind)]) + +#define _rl_walphabetic(c) (rl_alphabetic (c)) + +#define _rl_to_wupper(c) (_rl_to_upper (c)) +#define _rl_to_wlower(c) (_rl_to_lower (c)) + +#define MB_NEXTCHAR(b,s,c,f) ((s) + (c)) +#define MB_PREVCHAR(b,s,f) ((s) - 1) + #define MB_INVALIDCH(x) (0) #define MB_NULLWCH(x) (0) diff --git a/cmd-line-utils/readline/rlprivate.h b/cmd-line-utils/readline/rlprivate.h index c3cee917b76..64aa7bdd3fa 100644 --- a/cmd-line-utils/readline/rlprivate.h +++ b/cmd-line-utils/readline/rlprivate.h @@ -1,7 +1,7 @@ /* rlprivate.h -- functions and variables global to the readline library, but not intended for use by applications. */ -/* Copyright (C) 1999-2004 Free Software Foundation, Inc. +/* Copyright (C) 1999-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -30,6 +30,95 @@ /************************************************************************* * * + * Global structs undocumented in texinfo manual and not in readline.h * + * * + *************************************************************************/ +/* search types */ +#define RL_SEARCH_ISEARCH 0x01 /* incremental search */ +#define RL_SEARCH_NSEARCH 0x02 /* non-incremental search */ +#define RL_SEARCH_CSEARCH 0x04 /* intra-line char search */ + +/* search flags */ +#define SF_REVERSE 0x01 +#define SF_FOUND 0x02 +#define SF_FAILED 0x04 + +typedef struct __rl_search_context +{ + int type; + int sflags; + + char *search_string; + int search_string_index; + int search_string_size; + + char **lines; + char *allocated_line; + int hlen; + int hindex; + + int save_point; + int save_mark; + int save_line; + int last_found_line; + char *prev_line_found; + + UNDO_LIST *save_undo_list; + + int history_pos; + int direction; + + int lastc; +#if defined (HANDLE_MULTIBYTE) + char mb[MB_LEN_MAX]; +#endif + + char *sline; + int sline_len; + int sline_index; + + char *search_terminators; +} _rl_search_cxt; + +/* Callback data for reading numeric arguments */ +#define NUM_SAWMINUS 0x01 +#define NUM_SAWDIGITS 0x02 +#define NUM_READONE 0x04 + +typedef int _rl_arg_cxt; + +/* A context for reading key sequences longer than a single character when + using the callback interface. */ +#define KSEQ_DISPATCHED 0x01 +#define KSEQ_SUBSEQ 0x02 +#define KSEQ_RECURSIVE 0x04 + +typedef struct __rl_keyseq_context +{ + int flags; + int subseq_arg; + int subseq_retval; /* XXX */ + Keymap dmap; + + Keymap oldmap; + int okey; + struct __rl_keyseq_context *ocxt; + int childval; +} _rl_keyseq_cxt; + + /* fill in more as needed */ +/* `Generic' callback data and functions */ +typedef struct __rl_callback_generic_arg +{ + int count; + int i1, i2; + /* add here as needed */ +} _rl_callback_generic_arg; + +typedef int _rl_callback_func_t PARAMS((_rl_callback_generic_arg *)); + +/************************************************************************* + * * * Global functions undocumented in texinfo manual and not in readline.h * * * *************************************************************************/ @@ -54,6 +143,8 @@ extern int readline_echoing_p; extern int rl_key_sequence_length; extern int rl_byte_oriented; +extern _rl_keyseq_cxt *_rl_kscxt; + /* display.c */ extern int rl_display_fixed; @@ -100,6 +191,16 @@ extern void readline_internal_setup PARAMS((void)); extern char *readline_internal_teardown PARAMS((int)); extern int readline_internal_char PARAMS((void)); +extern _rl_keyseq_cxt *_rl_keyseq_cxt_alloc PARAMS((void)); +extern void _rl_keyseq_cxt_dispose PARAMS((_rl_keyseq_cxt *)); +extern void _rl_keyseq_chain_dispose PARAMS((void)); + +extern int _rl_dispatch_callback PARAMS((_rl_keyseq_cxt *)); + +/* callback.c */ +extern _rl_callback_generic_arg *_rl_callback_data_alloc PARAMS((int)); +extern void _rl_callback_data_dispose PARAMS((_rl_callback_generic_arg *)); + #endif /* READLINE_CALLBACKS */ /* bind.c */ @@ -132,6 +233,15 @@ extern void _rl_insert_typein PARAMS((int)); extern int _rl_unget_char PARAMS((int)); extern int _rl_pushed_input_available PARAMS((void)); +/* isearch.c */ +extern _rl_search_cxt *_rl_scxt_alloc PARAMS((int, int)); +extern void _rl_scxt_dispose PARAMS((_rl_search_cxt *, int)); + +extern int _rl_isearch_dispatch PARAMS((_rl_search_cxt *, int)); +extern int _rl_isearch_callback PARAMS((_rl_search_cxt *)); + +extern int _rl_search_getchar PARAMS((_rl_search_cxt *)); + /* macro.c */ extern void _rl_with_macro_input PARAMS((char *)); extern int _rl_next_macro_key PARAMS((void)); @@ -141,7 +251,12 @@ extern void _rl_add_macro_char PARAMS((int)); extern void _rl_kill_kbd_macro PARAMS((void)); /* misc.c */ -extern int _rl_init_argument PARAMS((void)); +extern int _rl_arg_overflow PARAMS((void)); +extern void _rl_arg_init PARAMS((void)); +extern int _rl_arg_getchar PARAMS((void)); +extern int _rl_arg_callback PARAMS((_rl_arg_cxt)); +extern void _rl_reset_argument PARAMS((void)); + extern void _rl_start_using_history PARAMS((void)); extern int _rl_free_saved_history_line PARAMS((void)); extern void _rl_set_insert_mode PARAMS((int, int)); @@ -157,11 +272,15 @@ extern void _rl_init_line_state PARAMS((void)); extern void _rl_set_the_line PARAMS((void)); extern int _rl_dispatch PARAMS((int, Keymap)); extern int _rl_dispatch_subseq PARAMS((int, Keymap, int)); +extern void _rl_internal_char_cleanup PARAMS((void)); /* rltty.c */ extern int _rl_disable_tty_signals PARAMS((void)); extern int _rl_restore_tty_signals PARAMS((void)); +/* search.c */ +extern int _rl_nsearch_callback PARAMS((_rl_search_cxt *)); + /* terminal.c */ extern void _rl_get_screen_size PARAMS((int, int)); extern int _rl_init_terminal_io PARAMS((const char *)); @@ -190,6 +309,10 @@ extern int _rl_char_search_internal PARAMS((int, int, int)); #endif extern int _rl_set_mark_at_pos PARAMS((int)); +/* undo.c */ +extern UNDO_LIST *_rl_copy_undo_entry PARAMS((UNDO_LIST *)); +extern UNDO_LIST *_rl_copy_undo_list PARAMS((UNDO_LIST *)); + /* util.c */ extern int _rl_abort_internal PARAMS((void)); extern char *_rl_strindex PARAMS((const char *, const char *)); @@ -217,6 +340,10 @@ extern void _rl_vi_done_inserting PARAMS((void)); extern const char *_rl_possible_control_prefixes[]; extern const char *_rl_possible_meta_prefixes[]; +/* callback.c */ +extern _rl_callback_func_t *_rl_callback_func; +extern _rl_callback_generic_arg *_rl_callback_data; + /* complete.c */ extern int _rl_complete_show_all; extern int _rl_complete_show_unmodified; @@ -231,11 +358,14 @@ extern int _rl_page_completions; extern int _rl_vis_botlin; extern int _rl_last_c_pos; extern int _rl_suppress_redisplay; +extern int _rl_want_redisplay; extern char *rl_display_prompt; /* isearch.c */ extern char *_rl_isearch_terminators; +extern _rl_search_cxt *_rl_iscxt; + /* macro.c */ extern char *_rl_executing_macro; @@ -243,6 +373,8 @@ extern char *_rl_executing_macro; extern int _rl_history_preserve_point; extern int _rl_history_saved_point; +extern _rl_arg_cxt _rl_argcxt; + /* readline.c */ extern int _rl_horizontal_scroll_mode; extern int _rl_mark_modified_lines; @@ -250,6 +382,7 @@ extern int _rl_bell_preference; extern int _rl_meta_flag; extern int _rl_convert_meta_chars_to_ascii; extern int _rl_output_meta_chars; +extern int _rl_bind_stty_chars; extern char *_rl_comment_begin; extern unsigned char _rl_parsing_conditionalized_out; extern Keymap _rl_keymap; @@ -259,6 +392,9 @@ extern int _rl_last_command_was_kill; extern int _rl_eof_char; extern procenv_t readline_top_level; +/* search.c */ +extern _rl_search_cxt *_rl_nscxt; + /* terminal.c */ extern int _rl_enable_keypad; extern int _rl_enable_meta; @@ -272,6 +408,7 @@ extern char *_rl_term_up; extern char *_rl_term_dc; extern char *_rl_term_cr; extern char *_rl_term_IC; +extern char *_rl_term_forward_char; extern int _rl_screenheight; extern int _rl_screenwidth; extern int _rl_screenchars; diff --git a/cmd-line-utils/readline/rltty.c b/cmd-line-utils/readline/rltty.c index 869538af9ab..12f3a93e524 100644 --- a/cmd-line-utils/readline/rltty.c +++ b/cmd-line-utils/readline/rltty.c @@ -1,7 +1,7 @@ /* rltty.c -- functions to prepare and restore the terminal for readline's use. */ -/* Copyright (C) 1992 Free Software Foundation, Inc. +/* Copyright (C) 1992-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -22,7 +22,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> #include <signal.h> @@ -149,7 +151,9 @@ set_winsize (int tty __attribute__((unused))) #endif /* TIOCGWINSZ */ } -#if defined (NEW_TTY_DRIVER) +#if defined (NO_TTY_DRIVER) +/* Nothing */ +#elif defined (NEW_TTY_DRIVER) /* Values for the `flags' field of a struct bsdtty. This tells which elements of the struct bsdtty have been fetched from the system and @@ -230,6 +234,7 @@ get_tty_settings (tty, tiop) tiop->flags = tiop->lflag = 0; + errno = 0; if (ioctl (tty, TIOCGETP, &(tiop->sgttyb)) < 0) return -1; tiop->flags |= SGTTY_SET; @@ -515,6 +520,7 @@ get_tty_settings (tty, tiop) { set_winsize (tty); + errno = 0; if (_get_tty_settings (tty, tiop) < 0) return -1; @@ -628,9 +634,23 @@ prepare_terminal_settings (meta_flag, oldtio, tiop) #endif /* TERMIOS_TTY_DRIVER && _POSIX_VDISABLE */ } -#endif /* NEW_TTY_DRIVER */ +#endif /* !NEW_TTY_DRIVER */ /* Put the terminal in CBREAK mode so that we can detect key presses. */ +#if defined (NO_TTY_DRIVER) +void +rl_prep_terminal (meta_flag) + int meta_flag; +{ + readline_echoing_p = 1; +} + +void +rl_deprep_terminal () +{ +} + +#else /* ! NO_TTY_DRIVER */ void rl_prep_terminal (meta_flag) int meta_flag; @@ -648,16 +668,43 @@ rl_prep_terminal (meta_flag) if (get_tty_settings (tty, &tio) < 0) { +#if defined (ENOTSUP) + /* MacOS X, at least, lies about the value of errno if tcgetattr fails. */ + if (errno == ENOTTY || errno == ENOTSUP) +#else + if (errno == ENOTTY) +#endif + readline_echoing_p = 1; /* XXX */ release_sigint (); return; } otio = tio; - rl_tty_unset_default_bindings (_rl_keymap); + if (_rl_bind_stty_chars) + { +#if defined (VI_MODE) + /* If editing in vi mode, make sure we restore the bindings in the + insertion keymap no matter what keymap we ended up in. */ + if (rl_editing_mode == vi_mode) + rl_tty_unset_default_bindings (vi_insertion_keymap); + else +#endif + rl_tty_unset_default_bindings (_rl_keymap); + } save_tty_chars (&otio); RL_SETSTATE(RL_STATE_TTYCSAVED); - _rl_bind_tty_special_chars (_rl_keymap, tio); + if (_rl_bind_stty_chars) + { +#if defined (VI_MODE) + /* If editing in vi mode, make sure we set the bindings in the + insertion keymap no matter what keymap we ended up in. */ + if (rl_editing_mode == vi_mode) + _rl_bind_tty_special_chars (vi_insertion_keymap, tio); + else +#endif + _rl_bind_tty_special_chars (_rl_keymap, tio); + } prepare_terminal_settings (meta_flag, otio, &tio); @@ -707,6 +754,7 @@ rl_deprep_terminal () release_sigint (); } +#endif /* !NO_TTY_DRIVER */ /* **************************************************************** */ /* */ @@ -715,8 +763,13 @@ rl_deprep_terminal () /* **************************************************************** */ int -rl_restart_output(int count __attribute__((unused)), int key __attribute__((unused))) +rl_restart_output (count, key) + int count, key; { +#if defined (__MINGW32__) + return 0; +#else /* !__MING32__ */ + int fildes = fileno (rl_outstream); #if defined (TIOCSTART) #if defined (apollo) @@ -744,11 +797,17 @@ rl_restart_output(int count __attribute__((unused)), int key __attribute__((unus #endif /* !TIOCSTART */ return 0; +#endif /* !__MINGW32__ */ } int -rl_stop_output(int count __attribute__((unused)), int key __attribute__((unused))) +rl_stop_output (count, key) + int count, key; { +#if defined (__MINGW32__) + return 0; +#else + int fildes = fileno (rl_instream); #if defined (TIOCSTOP) @@ -771,6 +830,7 @@ rl_stop_output(int count __attribute__((unused)), int key __attribute__((unused) #endif /* !TIOCSTOP */ return 0; +#endif /* !__MINGW32__ */ } /* **************************************************************** */ @@ -779,9 +839,16 @@ rl_stop_output(int count __attribute__((unused)), int key __attribute__((unused) /* */ /* **************************************************************** */ +#if !defined (NO_TTY_DRIVER) #define SET_SPECIAL(sc, func) set_special_char(kmap, &ttybuff, sc, func) +#endif -#if defined (NEW_TTY_DRIVER) +#if defined (NO_TTY_DRIVER) + +#define SET_SPECIAL(sc, func) +#define RESET_SPECIAL(c) + +#elif defined (NEW_TTY_DRIVER) static void set_special_char (kmap, tiop, sc, func) Keymap kmap; @@ -862,6 +929,7 @@ void rltty_set_default_bindings (kmap) Keymap kmap; { +#if !defined (NO_TTY_DRIVER) TIOTYPE ttybuff; int tty; @@ -869,6 +937,7 @@ rltty_set_default_bindings (kmap) if (get_tty_settings (tty, &ttybuff) == 0) _rl_bind_tty_special_chars (kmap, ttybuff); +#endif } /* New public way to set the system default editing chars to their readline @@ -906,7 +975,7 @@ rl_tty_unset_default_bindings (kmap) #if defined (HANDLE_SIGNALS) -#if defined (NEW_TTY_DRIVER) +#if defined (NEW_TTY_DRIVER) || defined (NO_TTY_DRIVER) int _rl_disable_tty_signals () { diff --git a/cmd-line-utils/readline/savestring.c b/cmd-line-utils/readline/savestring.c index ae605374d13..820428d8881 100644 --- a/cmd-line-utils/readline/savestring.c +++ b/cmd-line-utils/readline/savestring.c @@ -21,8 +21,7 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" - +#include <config.h> #ifdef HAVE_STRING_H # include <string.h> #endif diff --git a/cmd-line-utils/readline/search.c b/cmd-line-utils/readline/search.c index 6479427be2f..33cc4fc1e73 100644 --- a/cmd-line-utils/readline/search.c +++ b/cmd-line-utils/readline/search.c @@ -1,6 +1,6 @@ /* search.c - code for non-incremental searching in emacs and vi modes. */ -/* Copyright (C) 1992 Free Software Foundation, Inc. +/* Copyright (C) 1992-2005 Free Software Foundation, Inc. This file is part of the Readline Library (the Library), a set of routines for providing Emacs style line input to programs that ask @@ -22,7 +22,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> #include <stdio.h> @@ -51,6 +53,8 @@ #endif #define abs(x) (((x) >= 0) ? (x) : -(x)) +_rl_search_cxt *_rl_nscxt = 0; + extern HIST_ENTRY *_rl_saved_line_for_history; /* Functions imported from the rest of the library. */ @@ -68,11 +72,16 @@ static int history_string_size; static void make_history_line_current PARAMS((HIST_ENTRY *)); static int noninc_search_from_pos PARAMS((char *, int, int)); -static void noninc_dosearch PARAMS((char *, int)); -static void noninc_search PARAMS((int, int)); +static int noninc_dosearch PARAMS((char *, int)); +static int noninc_search PARAMS((int, int)); static int rl_history_search_internal PARAMS((int, int)); static void rl_history_search_reinit PARAMS((void)); +static _rl_search_cxt *_rl_nsearch_init PARAMS((int, int)); +static int _rl_nsearch_cleanup PARAMS((_rl_search_cxt *, int)); +static void _rl_nsearch_abort PARAMS((_rl_search_cxt *)); +static int _rl_nsearch_dispatch PARAMS((_rl_search_cxt *, int)); + /* Make the data from the history entry ENTRY be the contents of the current line. This doesn't do anything with rl_point; the caller must set it. */ @@ -80,12 +89,15 @@ static void make_history_line_current (entry) HIST_ENTRY *entry; { -#if 0 - rl_replace_line (entry->line, 1); - rl_undo_list = (UNDO_LIST *)entry->data; -#else _rl_replace_text (entry->line, 0, rl_end); _rl_fix_point (1); +#if defined (VI_MODE) + if (rl_editing_mode == vi_mode) + /* POSIX.2 says that the `U' command doesn't affect the copy of any + command lines to the edit line. We're going to implement that by + making the undo list start after the matching line is copied to the + current editing buffer. */ + rl_free_undo_list (); #endif if (_rl_saved_line_for_history) @@ -128,8 +140,8 @@ noninc_search_from_pos (string, pos, dir) /* Search for a line in the history containing STRING. If DIR is < 0, the search is backwards through previous entries, else through subsequent - entries. */ -static void + entries. Returns 1 if the search was successful, 0 otherwise. */ +static int noninc_dosearch (string, dir) char *string; int dir; @@ -140,7 +152,7 @@ noninc_dosearch (string, dir) if (string == 0 || *string == '\0' || noninc_history_pos < 0) { rl_ding (); - return; + return 0; } pos = noninc_search_from_pos (string, noninc_history_pos + dir, dir); @@ -151,7 +163,7 @@ noninc_dosearch (string, dir) rl_clear_message (); rl_point = 0; rl_ding (); - return; + return 0; } noninc_history_pos = pos; @@ -162,7 +174,7 @@ noninc_dosearch (string, dir) #if defined (VI_MODE) if (rl_editing_mode != vi_mode) #endif - history_set_pos (oldpos); + history_set_pos (oldpos); make_history_line_current (entry); @@ -170,27 +182,24 @@ noninc_dosearch (string, dir) rl_mark = rl_end; rl_clear_message (); + return 1; } -/* Search non-interactively through the history list. DIR < 0 means to - search backwards through the history of previous commands; otherwise - the search is for commands subsequent to the current position in the - history list. PCHAR is the character to use for prompting when reading - the search string; if not specified (0), it defaults to `:'. */ -static void -noninc_search (dir, pchar) - int dir; - int pchar; +static _rl_search_cxt * +_rl_nsearch_init (dir, pchar) + int dir, pchar; { - int saved_point, saved_mark, c; + _rl_search_cxt *cxt; char *p; -#if defined (HANDLE_MULTIBYTE) - char mb[MB_LEN_MAX]; -#endif + + cxt = _rl_scxt_alloc (RL_SEARCH_NSEARCH, 0); + if (dir < 0) + cxt->sflags |= SF_REVERSE; /* not strictly needed */ + + cxt->direction = dir; + cxt->history_pos = cxt->save_line; rl_maybe_save_line (); - saved_point = rl_point; - saved_mark = rl_mark; /* Clear the undo list, since reading the search string should create its own undo list, and the whole list will end up being freed when we @@ -202,152 +211,243 @@ noninc_search (dir, pchar) rl_end = rl_point = 0; p = _rl_make_prompt_for_search (pchar ? pchar : ':'); - rl_message (p, 0, 0); + rl_message ("%s", p, 0); free (p); -#define SEARCH_RETURN rl_restore_prompt (); RL_UNSETSTATE(RL_STATE_NSEARCH); return - RL_SETSTATE(RL_STATE_NSEARCH); - /* Read the search string. */ - while (1) + + _rl_nscxt = cxt; + + return cxt; +} + +static int +_rl_nsearch_cleanup (cxt, r) + _rl_search_cxt *cxt; + int r; +{ + _rl_scxt_dispose (cxt, 0); + _rl_nscxt = 0; + + RL_UNSETSTATE(RL_STATE_NSEARCH); + + return (r != 1); +} + +static void +_rl_nsearch_abort (cxt) + _rl_search_cxt *cxt; +{ + rl_maybe_unsave_line (); + rl_clear_message (); + rl_point = cxt->save_point; + rl_mark = cxt->save_mark; + rl_restore_prompt (); + + RL_UNSETSTATE (RL_STATE_NSEARCH); +} + +/* Process just-read character C according to search context CXT. Return -1 + if the caller should abort the search, 0 if we should break out of the + loop, and 1 if we should continue to read characters. */ +static int +_rl_nsearch_dispatch (cxt, c) + _rl_search_cxt *cxt; + int c; +{ + switch (c) { - RL_SETSTATE(RL_STATE_MOREINPUT); - c = rl_read_key (); - RL_UNSETSTATE(RL_STATE_MOREINPUT); + case CTRL('W'): + rl_unix_word_rubout (1, c); + break; -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - c = _rl_read_mbstring (c, mb, MB_LEN_MAX); -#endif + case CTRL('U'): + rl_unix_line_discard (1, c); + break; - if (c == 0) - break; + case RETURN: + case NEWLINE: + return 0; - switch (c) + case CTRL('H'): + case RUBOUT: + if (rl_point == 0) { - case CTRL('H'): - case RUBOUT: - if (rl_point == 0) - { - rl_maybe_unsave_line (); - rl_clear_message (); - rl_point = saved_point; - rl_mark = saved_mark; - SEARCH_RETURN; - } - _rl_rubout_char (1, c); - break; - - case CTRL('W'): - rl_unix_word_rubout (1, c); - break; - - case CTRL('U'): - rl_unix_line_discard (1, c); - break; - - case RETURN: - case NEWLINE: - goto dosearch; - /* NOTREACHED */ - break; - - case CTRL('C'): - case CTRL('G'): - rl_maybe_unsave_line (); - rl_clear_message (); - rl_point = saved_point; - rl_mark = saved_mark; - rl_ding (); - SEARCH_RETURN; + _rl_nsearch_abort (cxt); + return -1; + } + _rl_rubout_char (1, c); + break; + + case CTRL('C'): + case CTRL('G'): + rl_ding (); + _rl_nsearch_abort (cxt); + return -1; - default: + default: #if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - rl_insert_text (mb); - else + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + rl_insert_text (cxt->mb); + else #endif - _rl_insert_char (1, c); - break; - } - (*rl_redisplay_function) (); + _rl_insert_char (1, c); + break; } - dosearch: - rl_mark = saved_mark; + (*rl_redisplay_function) (); + return 1; +} + +/* Perform one search according to CXT, using NONINC_SEARCH_STRING. Return + -1 if the search should be aborted, any other value means to clean up + using _rl_nsearch_cleanup (). Returns 1 if the search was successful, + 0 otherwise. */ +static int +_rl_nsearch_dosearch (cxt) + _rl_search_cxt *cxt; +{ + rl_mark = cxt->save_mark; /* If rl_point == 0, we want to re-use the previous search string and start from the saved history position. If there's no previous search string, punt. */ if (rl_point == 0) { - if (!noninc_search_string) + if (noninc_search_string == 0) { rl_ding (); - SEARCH_RETURN; + rl_restore_prompt (); + RL_UNSETSTATE (RL_STATE_NSEARCH); + return -1; } } else { /* We want to start the search from the current history position. */ - noninc_history_pos = where_history (); + noninc_history_pos = cxt->save_line; FREE (noninc_search_string); noninc_search_string = savestring (rl_line_buffer); + + /* If we don't want the subsequent undo list generated by the search + matching a history line to include the contents of the search string, + we need to clear rl_line_buffer here. For now, we just clear the + undo list generated by reading the search string. (If the search + fails, the old undo list will be restored by rl_maybe_unsave_line.) */ + rl_free_undo_list (); } rl_restore_prompt (); - noninc_dosearch (noninc_search_string, dir); - RL_UNSETSTATE(RL_STATE_NSEARCH); + return (noninc_dosearch (noninc_search_string, cxt->direction)); +} + +/* Search non-interactively through the history list. DIR < 0 means to + search backwards through the history of previous commands; otherwise + the search is for commands subsequent to the current position in the + history list. PCHAR is the character to use for prompting when reading + the search string; if not specified (0), it defaults to `:'. */ +static int +noninc_search (dir, pchar) + int dir; + int pchar; +{ + _rl_search_cxt *cxt; + int c, r; + + cxt = _rl_nsearch_init (dir, pchar); + + if (RL_ISSTATE (RL_STATE_CALLBACK)) + return (0); + + /* Read the search string. */ + r = 0; + while (1) + { + c = _rl_search_getchar (cxt); + + if (c == 0) + break; + + r = _rl_nsearch_dispatch (cxt, c); + if (r < 0) + return 1; + else if (r == 0) + break; + } + + r = _rl_nsearch_dosearch (cxt); + return ((r >= 0) ? _rl_nsearch_cleanup (cxt, r) : (r != 1)); } /* Search forward through the history list for a string. If the vi-mode code calls this, KEY will be `?'. */ int -rl_noninc_forward_search (int count __attribute__((unused)), int key) +rl_noninc_forward_search (count, key) + int count, key; { - noninc_search (1, (key == '?') ? '?' : 0); - return 0; + return noninc_search (1, (key == '?') ? '?' : 0); } /* Reverse search the history list for a string. If the vi-mode code calls this, KEY will be `/'. */ int -rl_noninc_reverse_search (int count __attribute__((unused)), int key) +rl_noninc_reverse_search (count, key) + int count, key; { - noninc_search (-1, (key == '/') ? '/' : 0); - return 0; + return noninc_search (-1, (key == '/') ? '/' : 0); } /* Search forward through the history list for the last string searched for. If there is no saved search string, abort. */ int -rl_noninc_forward_search_again (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_noninc_forward_search_again (count, key) + int count, key; { + int r; + if (!noninc_search_string) { rl_ding (); return (-1); } - noninc_dosearch (noninc_search_string, 1); - return 0; + r = noninc_dosearch (noninc_search_string, 1); + return (r != 1); } /* Reverse search in the history list for the last string searched for. If there is no saved search string, abort. */ int -rl_noninc_reverse_search_again (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_noninc_reverse_search_again (count, key) + int count, key; { + int r; + if (!noninc_search_string) { rl_ding (); return (-1); } - noninc_dosearch (noninc_search_string, -1); - return 0; + r = noninc_dosearch (noninc_search_string, -1); + return (r != 1); } +#if defined (READLINE_CALLBACKS) +int +_rl_nsearch_callback (cxt) + _rl_search_cxt *cxt; +{ + int c, r; + + c = _rl_search_getchar (cxt); + r = _rl_nsearch_dispatch (cxt, c); + if (r != 0) + return 1; + + r = _rl_nsearch_dosearch (cxt); + return ((r >= 0) ? _rl_nsearch_cleanup (cxt, r) : (r != 1)); +} +#endif + static int rl_history_search_internal (count, dir) int count, dir; diff --git a/cmd-line-utils/readline/shell.c b/cmd-line-utils/readline/shell.c index 41668d70ab5..346f8113d43 100644 --- a/cmd-line-utils/readline/shell.c +++ b/cmd-line-utils/readline/shell.c @@ -22,7 +22,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> @@ -46,8 +48,12 @@ # include <limits.h> #endif +#if defined (HAVE_FCNTL_H) #include <fcntl.h> +#endif +#if defined (HAVE_PWD_H) #include <pwd.h> +#endif #include <stdio.h> @@ -55,9 +61,9 @@ #include "rlshell.h" #include "xmalloc.h" -#if !defined (HAVE_GETPW_DECLS) +#if defined (HAVE_GETPWUID) && !defined (HAVE_GETPW_DECLS) extern struct passwd *getpwuid PARAMS((uid_t)); -#endif /* !HAVE_GETPW_DECLS */ +#endif /* HAVE_GETPWUID && !HAVE_GETPW_DECLS */ #ifndef NULL # define NULL 0 @@ -120,16 +126,7 @@ sh_set_lines_and_columns (lines, cols) { char *b; -#if defined (HAVE_PUTENV) - b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1); - sprintf (b, "LINES=%d", lines); - putenv (b); - - b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("COLUMNS=") + 1); - sprintf (b, "COLUMNS=%d", cols); - putenv (b); -#else /* !HAVE_PUTENV */ -# if defined (HAVE_SETENV) +#if defined (HAVE_SETENV) b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1); sprintf (b, "%d", lines); setenv ("LINES", b, 1); @@ -139,8 +136,17 @@ sh_set_lines_and_columns (lines, cols) sprintf (b, "%d", cols); setenv ("COLUMNS", b, 1); free (b); -# endif /* HAVE_SETENV */ -#endif /* !HAVE_PUTENV */ +#else /* !HAVE_SETENV */ +# if defined (HAVE_PUTENV) + b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1); + sprintf (b, "LINES=%d", lines); + putenv (b); + + b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("COLUMNS=") + 1); + sprintf (b, "COLUMNS=%d", cols); + putenv (b); +# endif /* HAVE_PUTENV */ +#endif /* !HAVE_SETENV */ } char * @@ -157,9 +163,11 @@ sh_get_home_dir () struct passwd *entry; home_dir = (char *)NULL; +#if defined (HAVE_GETPWUID) entry = getpwuid (getuid ()); if (entry) home_dir = entry->pw_dir; +#endif return (home_dir); } @@ -173,6 +181,7 @@ int sh_unset_nodelay_mode (fd) int fd; { +#if defined (HAVE_FCNTL) int flags, bflags; if ((flags = fcntl (fd, F_GETFL, 0)) < 0) @@ -193,6 +202,7 @@ sh_unset_nodelay_mode (fd) flags &= ~bflags; return (fcntl (fd, F_SETFL, flags)); } +#endif return 0; } diff --git a/cmd-line-utils/readline/signals.c b/cmd-line-utils/readline/signals.c index be1150f6c54..54f2a642846 100644 --- a/cmd-line-utils/readline/signals.c +++ b/cmd-line-utils/readline/signals.c @@ -1,6 +1,6 @@ /* signals.c -- signal handling support for readline. */ -/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <stdio.h> /* Just for NULL. Yuck. */ #include <sys/types.h> @@ -129,7 +131,11 @@ rl_signal_handler (sig) #if !defined (HAVE_BSD_SIGNALS) && !defined (HAVE_POSIX_SIGNALS) /* Since the signal will not be blocked while we are in the signal handler, ignore it until rl_clear_signals resets the catcher. */ +# if defined (SIGALRM) if (sig == SIGINT || sig == SIGALRM) +# else + if (sig == SIGINT) +# endif rl_set_sighandler (sig, SIG_IGN, &dummy_cxt); #endif /* !HAVE_BSD_SIGNALS && !HAVE_POSIX_SIGNALS */ @@ -139,17 +145,22 @@ rl_signal_handler (sig) rl_free_line_state (); /* FALLTHROUGH */ + case SIGTERM: #if defined (SIGTSTP) case SIGTSTP: case SIGTTOU: case SIGTTIN: #endif /* SIGTSTP */ +#if defined (SIGALRM) case SIGALRM: - case SIGTERM: +#endif +#if defined (SIGQUIT) case SIGQUIT: +#endif rl_cleanup_after_signal (); #if defined (HAVE_POSIX_SIGNALS) + sigemptyset (&set); sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &set); sigdelset (&set, sig); #else /* !HAVE_POSIX_SIGNALS */ @@ -162,7 +173,11 @@ rl_signal_handler (sig) signal (sig, SIG_ACK); #endif +#if defined (HAVE_KILL) kill (getpid (), sig); +#else + raise (sig); /* assume we have raise */ +#endif /* Let the signal that we just sent through. */ #if defined (HAVE_POSIX_SIGNALS) @@ -274,13 +289,51 @@ rl_set_signals () { sighandler_cxt dummy; SigHandler *oh; +#if defined (HAVE_POSIX_SIGNALS) + static int sigmask_set = 0; + static sigset_t bset, oset; +#endif + +#if defined (HAVE_POSIX_SIGNALS) + if (rl_catch_signals && sigmask_set == 0) + { + sigemptyset (&bset); + + sigaddset (&bset, SIGINT); + sigaddset (&bset, SIGINT); +#if defined (SIGQUIT) + sigaddset (&bset, SIGQUIT); +#endif +#if defined (SIGALRM) + sigaddset (&bset, SIGALRM); +#endif +#if defined (SIGTSTP) + sigaddset (&bset, SIGTSTP); +#endif +#if defined (SIGTTIN) + sigaddset (&bset, SIGTTIN); +#endif +#if defined (SIGTTOU) + sigaddset (&bset, SIGTTOU); +#endif + sigmask_set = 1; + } +#endif /* HAVE_POSIX_SIGNALS */ if (rl_catch_signals && signals_set_flag == 0) { +#if defined (HAVE_POSIX_SIGNALS) + sigemptyset (&oset); + sigprocmask (SIG_BLOCK, &bset, &oset); +#endif + rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int); rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term); +#if defined (SIGQUIT) rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit); +#endif +#if defined (SIGALRM) oh = rl_set_sighandler (SIGALRM, rl_signal_handler, &old_alrm); if (oh == (SigHandler *)SIG_IGN) rl_sigaction (SIGALRM, &old_alrm, &dummy); @@ -292,6 +345,7 @@ rl_set_signals () if (oh != (SigHandler *)SIG_DFL && (old_alrm.sa_flags & SA_RESTART)) rl_sigaction (SIGALRM, &old_alrm, &dummy); #endif /* HAVE_POSIX_SIGNALS */ +#endif /* SIGALRM */ #if defined (SIGTSTP) rl_maybe_set_sighandler (SIGTSTP, rl_signal_handler, &old_tstp); @@ -306,6 +360,10 @@ rl_set_signals () #endif /* SIGTTIN */ signals_set_flag = 1; + +#if defined (HAVE_POSIX_SIGNALS) + sigprocmask (SIG_SETMASK, &oset, (sigset_t *)NULL); +#endif } #if defined (SIGWINCH) @@ -330,8 +388,12 @@ rl_clear_signals () rl_sigaction (SIGINT, &old_int, &dummy); rl_sigaction (SIGTERM, &old_term, &dummy); +#if defined (SIGQUIT) rl_sigaction (SIGQUIT, &old_quit, &dummy); +#endif +#if defined (SIGALRM) rl_sigaction (SIGALRM, &old_alrm, &dummy); +#endif #if defined (SIGTSTP) rl_sigaction (SIGTSTP, &old_tstp, &dummy); @@ -366,16 +428,18 @@ void rl_cleanup_after_signal () { _rl_clean_up_for_exit (); - (*rl_deprep_term_function) (); - rl_clear_signals (); + if (rl_deprep_term_function) + (*rl_deprep_term_function) (); rl_clear_pending_input (); + rl_clear_signals (); } /* Reset the terminal and readline state after a signal handler returns. */ void rl_reset_after_signal () { - (*rl_prep_term_function) (_rl_meta_flag); + if (rl_prep_term_function) + (*rl_prep_term_function) (_rl_meta_flag); rl_set_signals (); } @@ -396,7 +460,7 @@ rl_free_line_state () _rl_kill_kbd_macro (); rl_clear_message (); - _rl_init_argument (); + _rl_reset_argument (); } #endif /* HANDLE_SIGNALS */ diff --git a/cmd-line-utils/readline/terminal.c b/cmd-line-utils/readline/terminal.c index 4b900c5d860..547f6f5dfe5 100644 --- a/cmd-line-utils/readline/terminal.c +++ b/cmd-line-utils/readline/terminal.c @@ -1,6 +1,6 @@ /* terminal.c -- controlling the terminal with termcap. */ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996-2006 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> #include "posixstat.h" @@ -64,9 +66,25 @@ #include "rlshell.h" #include "xmalloc.h" +#if defined (__MINGW32__) +# include <windows.h> +# include <wincon.h> + +static void _win_get_screensize PARAMS((int *, int *)); +#endif + +#if defined (__EMX__) +static void _emx_get_screensize PARAMS((int *, int *)); +#endif + #define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay) #define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc) +/* If the calling application sets this to a non-zero value, readline will + use the $LINES and $COLUMNS environment variables to set its idea of the + window size before interrogating the kernel. */ +int rl_prefer_env_winsize = 0; + /* **************************************************************** */ /* */ /* Terminal and Termcap */ @@ -107,9 +125,7 @@ char *_rl_term_IC; char *_rl_term_dc; char *_rl_term_DC; -#if defined (HACK_TERMCAP_MOTION) char *_rl_term_forward_char; -#endif /* HACK_TERMCAP_MOTION */ /* How to go up a line. */ char *_rl_term_up; @@ -118,7 +134,7 @@ char *_rl_term_up; static char *_rl_visible_bell; /* Non-zero means the terminal can auto-wrap lines. */ -int _rl_term_autowrap; +int _rl_term_autowrap = -1; /* Non-zero means that this terminal has a meta key. */ static int term_has_meta; @@ -143,6 +159,9 @@ static char *_rl_term_kh; static char *_rl_term_kH; static char *_rl_term_at7; /* @7 */ +/* Delete key */ +static char *_rl_term_kD; + /* Insert key */ static char *_rl_term_kI; @@ -177,6 +196,26 @@ _emx_get_screensize (swp, shp) } #endif +#if defined (__MINGW32__) +static void +_win_get_screensize (swp, shp) + int *swp, *shp; +{ + HANDLE hConOut; + CONSOLE_SCREEN_BUFFER_INFO scr; + + hConOut = GetStdHandle (STD_OUTPUT_HANDLE); + if (hConOut != INVALID_HANDLE_VALUE) + { + if (GetConsoleScreenBufferInfo (hConOut, &scr)) + { + *swp = scr.dwSize.X; + *shp = scr.srWindow.Bottom - scr.srWindow.Top + 1; + } + } +} +#endif + /* Get readline's idea of the screen size. TTY is a file descriptor open to the terminal. If IGNORE_ENV is true, we do not pay attention to the values of $LINES and $COLUMNS. The tests for TERM_STRING_BUFFER being @@ -189,26 +228,42 @@ _rl_get_screen_size (tty, ignore_env) #if defined (TIOCGWINSZ) struct winsize window_size; #endif /* TIOCGWINSZ */ + int wr, wc; + wr = wc = -1; #if defined (TIOCGWINSZ) if (ioctl (tty, TIOCGWINSZ, &window_size) == 0) { - _rl_screenwidth = (int) window_size.ws_col; - _rl_screenheight = (int) window_size.ws_row; + wc = (int) window_size.ws_col; + wr = (int) window_size.ws_row; } #endif /* TIOCGWINSZ */ #if defined (__EMX__) - _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight); + _emx_get_screensize (&wc, &wr); +#elif defined (__MINGW32__) + _win_get_screensize (&wc, &wr); #endif + if (ignore_env || rl_prefer_env_winsize == 0) + { + _rl_screenwidth = wc; + _rl_screenheight = wr; + } + else + _rl_screenwidth = _rl_screenheight = -1; + /* Environment variable COLUMNS overrides setting of "co" if IGNORE_ENV - is unset. */ + is unset. If we prefer the environment, check it first before + assigning the value returned by the kernel. */ if (_rl_screenwidth <= 0) { if (ignore_env == 0 && (ss = sh_get_env_value ("COLUMNS"))) _rl_screenwidth = atoi (ss); + if (_rl_screenwidth <= 0) + _rl_screenwidth = wc; + #if !defined (__DJGPP__) if (_rl_screenwidth <= 0 && term_string_buffer) _rl_screenwidth = tgetnum ("co"); @@ -222,6 +277,9 @@ _rl_get_screen_size (tty, ignore_env) if (ignore_env == 0 && (ss = sh_get_env_value ("LINES"))) _rl_screenheight = atoi (ss); + if (_rl_screenheight <= 0) + _rl_screenheight = wr; + #if !defined (__DJGPP__) if (_rl_screenheight <= 0 && term_string_buffer) _rl_screenheight = tgetnum ("li"); @@ -250,16 +308,20 @@ void _rl_set_screen_size (rows, cols) int rows, cols; { - if (rows == 0 || cols == 0) - return; - - _rl_screenheight = rows; - _rl_screenwidth = cols; + if (_rl_term_autowrap == -1) + _rl_init_terminal_io (rl_terminal_name); - if (_rl_term_autowrap == 0) - _rl_screenwidth--; + if (rows > 0) + _rl_screenheight = rows; + if (cols > 0) + { + _rl_screenwidth = cols; + if (_rl_term_autowrap == 0) + _rl_screenwidth--; + } - _rl_screenchars = _rl_screenwidth * _rl_screenheight; + if (rows > 0 || cols > 0) + _rl_screenchars = _rl_screenwidth * _rl_screenheight; } void @@ -278,6 +340,12 @@ rl_get_screen_size (rows, cols) if (cols) *cols = _rl_screenwidth; } + +void +rl_reset_screen_size () +{ + _rl_get_screen_size (fileno (rl_instream), 0); +} void rl_resize_terminal () @@ -311,6 +379,7 @@ static struct _tc_string tc_strings[] = { "ei", &_rl_term_ei }, { "ic", &_rl_term_ic }, { "im", &_rl_term_im }, + { "kD", &_rl_term_kD }, /* delete */ { "kH", &_rl_term_kH }, /* home down ?? */ { "kI", &_rl_term_kI }, /* insert */ { "kd", &_rl_term_kd }, @@ -323,9 +392,7 @@ static struct _tc_string tc_strings[] = { "le", &_rl_term_backspace }, { "mm", &_rl_term_mm }, { "mo", &_rl_term_mo }, -#if defined (HACK_TERMCAP_MOTION) { "nd", &_rl_term_forward_char }, -#endif { "pc", &_rl_term_pc }, { "up", &_rl_term_up }, { "vb", &_rl_visible_bell }, @@ -344,7 +411,7 @@ get_term_capabilities (bp) #if !defined (__DJGPP__) /* XXX - doesn't DJGPP have a termcap library? */ register int i; - for (i = 0; i < (int) NUM_TC_STRINGS; i++) + for (i = 0; i < NUM_TC_STRINGS; i++) *(tc_strings[i].tc_value) = tgetstr ((char *)tc_strings[i].tc_var, bp); #endif tcap_initialized = 1; @@ -361,7 +428,6 @@ _rl_init_terminal_io (terminal_name) term = terminal_name ? terminal_name : sh_get_env_value ("TERM"); _rl_term_clrpag = _rl_term_cr = _rl_term_clreol = (char *)NULL; tty = rl_instream ? fileno (rl_instream) : 0; - _rl_screenwidth = _rl_screenheight = 0; if (term == 0) term = "dumb"; @@ -394,12 +460,17 @@ _rl_init_terminal_io (terminal_name) _rl_term_autowrap = 0; /* used by _rl_get_screen_size */ + /* Allow calling application to set default height and width, using + rl_set_screen_size */ + if (_rl_screenwidth <= 0 || _rl_screenheight <= 0) + { #if defined (__EMX__) - _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight); - _rl_screenwidth--; + _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight); + _rl_screenwidth--; #else /* !__EMX__ */ - _rl_get_screen_size (tty, 0); + _rl_get_screen_size (tty, 0); #endif /* !__EMX__ */ + } /* Defaults. */ if (_rl_screenwidth <= 0 || _rl_screenheight <= 0) @@ -410,24 +481,22 @@ _rl_init_terminal_io (terminal_name) /* Everything below here is used by the redisplay code (tputs). */ _rl_screenchars = _rl_screenwidth * _rl_screenheight; - _rl_term_cr = (char*) "\r"; + _rl_term_cr = "\r"; _rl_term_im = _rl_term_ei = _rl_term_ic = _rl_term_IC = (char *)NULL; _rl_term_up = _rl_term_dc = _rl_term_DC = _rl_visible_bell = (char *)NULL; _rl_term_ku = _rl_term_kd = _rl_term_kl = _rl_term_kr = (char *)NULL; - _rl_term_kh = _rl_term_kH = _rl_term_kI = (char *)NULL; + _rl_term_kh = _rl_term_kH = _rl_term_kI = _rl_term_kD = (char *)NULL; _rl_term_ks = _rl_term_ke = _rl_term_at7 = (char *)NULL; _rl_term_mm = _rl_term_mo = (char *)NULL; _rl_term_ve = _rl_term_vs = (char *)NULL; -#if defined (HACK_TERMCAP_MOTION) - term_forward_char = (char *)NULL; -#endif + _rl_term_forward_char = (char *)NULL; _rl_terminal_can_insert = term_has_meta = 0; /* Reasonable defaults for tgoto(). Readline currently only uses tgoto if _rl_term_IC or _rl_term_DC is defined, but just in case we change that later... */ PC = '\0'; - BC = _rl_term_backspace = (char*) "\b"; + BC = _rl_term_backspace = "\b"; UP = _rl_term_up; return 0; @@ -442,11 +511,14 @@ _rl_init_terminal_io (terminal_name) UP = _rl_term_up; if (!_rl_term_cr) - _rl_term_cr = (char*) "\r"; + _rl_term_cr = "\r"; _rl_term_autowrap = tgetflag ("am") && tgetflag ("xn"); - _rl_get_screen_size (tty, 0); + /* Allow calling application to set default height and width, using + rl_set_screen_size */ + if (_rl_screenwidth <= 0 || _rl_screenheight <= 0) + _rl_get_screen_size (tty, 0); /* "An application program can assume that the terminal can do character insertion if *any one of* the capabilities `IC', @@ -491,6 +563,8 @@ bind_termcap_arrow_keys (map) rl_bind_keyseq_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */ rl_bind_keyseq_if_unbound (_rl_term_at7, rl_end_of_line); /* End */ + rl_bind_keyseq_if_unbound (_rl_term_kD, rl_delete); + _rl_keymap = xkeymap; } @@ -502,7 +576,7 @@ rl_get_termcap (cap) if (tcap_initialized == 0) return ((char *)NULL); - for (i = 0; i < (int) NUM_TC_STRINGS; i++) + for (i = 0; i < NUM_TC_STRINGS; i++) { if (tc_strings[i].tc_var[0] == cap[0] && strcmp (tc_strings[i].tc_var, cap) == 0) return *(tc_strings[i].tc_value); @@ -516,6 +590,7 @@ int rl_reset_terminal (terminal_name) const char *terminal_name; { + _rl_screenwidth = _rl_screenheight = 0; _rl_init_terminal_io (terminal_name); return 0; } diff --git a/cmd-line-utils/readline/text.c b/cmd-line-utils/readline/text.c index cf9223df844..399a48c5f1e 100644 --- a/cmd-line-utils/readline/text.c +++ b/cmd-line-utils/readline/text.c @@ -1,6 +1,6 @@ /* text.c -- text handling commands for readline. */ -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #if defined (HAVE_UNISTD_H) # include <unistd.h> @@ -60,6 +62,11 @@ static int rl_change_case PARAMS((int, int)); static int _rl_char_search PARAMS((int, int, int)); +#if defined (READLINE_CALLBACKS) +static int _rl_insert_next_callback PARAMS((_rl_callback_generic_arg *)); +static int _rl_char_search_callback PARAMS((_rl_callback_generic_arg *)); +#endif + /* **************************************************************** */ /* */ /* Insert and Delete */ @@ -402,7 +409,8 @@ rl_backward (count, key) /* Move to the beginning of the line. */ int -rl_beg_of_line (int count __attribute__((unused)), int key __attribute__((unused))) +rl_beg_of_line (count, key) + int count, key; { rl_point = 0; return 0; @@ -410,14 +418,14 @@ rl_beg_of_line (int count __attribute__((unused)), int key __attribute__((unused /* Move to the end of the line. */ int -rl_end_of_line (int count __attribute__((unused)), int key __attribute__((unused))) +rl_end_of_line (count, key) + int count, key; { rl_point = rl_end; return 0; } -/* XXX - these might need changes for multibyte characters */ -/* Move forward a word. We do what Emacs does. */ +/* Move forward a word. We do what Emacs does. Handles multibyte chars. */ int rl_forward_word (count, key) int count, key; @@ -434,68 +442,80 @@ rl_forward_word (count, key) /* If we are not in a word, move forward until we are in one. Then, move forward until we hit a non-alphabetic character. */ - c = rl_line_buffer[rl_point]; - if (rl_alphabetic (c) == 0) + c = _rl_char_value (rl_line_buffer, rl_point); + + if (_rl_walphabetic (c) == 0) { - while (++rl_point < rl_end) + rl_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); + while (rl_point < rl_end) { - c = rl_line_buffer[rl_point]; - if (rl_alphabetic (c)) + c = _rl_char_value (rl_line_buffer, rl_point); + if (_rl_walphabetic (c)) break; + rl_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); } } if (rl_point == rl_end) return 0; - while (++rl_point < rl_end) + rl_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); + while (rl_point < rl_end) { - c = rl_line_buffer[rl_point]; - if (rl_alphabetic (c) == 0) + c = _rl_char_value (rl_line_buffer, rl_point); + if (_rl_walphabetic (c) == 0) break; + rl_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); } + --count; } return 0; } -/* Move backward a word. We do what Emacs does. */ +/* Move backward a word. We do what Emacs does. Handles multibyte chars. */ int rl_backward_word (count, key) int count, key; { - int c; + int c, p; if (count < 0) return (rl_forward_word (-count, key)); while (count) { - if (!rl_point) + if (rl_point == 0) return 0; /* Like rl_forward_word (), except that we look at the characters just before point. */ - c = rl_line_buffer[rl_point - 1]; - if (rl_alphabetic (c) == 0) + p = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_NONZERO); + c = _rl_char_value (rl_line_buffer, p); + + if (_rl_walphabetic (c) == 0) { - while (--rl_point) + rl_point = p; + while (rl_point > 0) { - c = rl_line_buffer[rl_point - 1]; - if (rl_alphabetic (c)) + p = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_NONZERO); + c = _rl_char_value (rl_line_buffer, p); + if (_rl_walphabetic (c)) break; + rl_point = p; } } while (rl_point) { - c = rl_line_buffer[rl_point - 1]; - if (rl_alphabetic (c) == 0) + p = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_NONZERO); + c = _rl_char_value (rl_line_buffer, p); + if (_rl_walphabetic (c) == 0) break; else - --rl_point; + rl_point = p; } --count; @@ -506,7 +526,8 @@ rl_backward_word (count, key) /* Clear the current line. Numeric argument to C-l does this. */ int -rl_refresh_line (int count __attribute__((unused)), int key __attribute__((unused))) +rl_refresh_line (ignore1, ignore2) + int ignore1, ignore2; { int curr_line; @@ -544,7 +565,8 @@ rl_clear_screen (count, key) } int -rl_arrow_keys (int count, int c __attribute__((unused))) +rl_arrow_keys (count, c) + int count, c; { int ch; @@ -592,7 +614,7 @@ rl_arrow_keys (int count, int c __attribute__((unused))) #ifdef HANDLE_MULTIBYTE static char pending_bytes[MB_LEN_MAX]; static int pending_bytes_length = 0; -static mbstate_t ps; +static mbstate_t ps = {0}; #endif /* Insert the character C at the current location, moving point forward. @@ -750,10 +772,8 @@ _rl_insert_char (count, c) return 0; } -#if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX == 1 || rl_byte_oriented) { -#endif /* We are inserting a single character. If there is pending input, then make a string of all of the pending characters that are bound to rl_insert, and insert @@ -769,8 +789,8 @@ _rl_insert_char (count, c) str[0] = c; rl_insert_text (str); } -#if defined (HANDLE_MULTIBYTE) } +#if defined (HANDLE_MULTIBYTE) else { rl_insert_text (incoming); @@ -827,29 +847,67 @@ rl_insert (count, c) } /* Insert the next typed character verbatim. */ -int -rl_quoted_insert (int count, int key __attribute__((unused))) +static int +_rl_insert_next (count) + int count; { int c; -#if defined (HANDLE_SIGNALS) - _rl_disable_tty_signals (); -#endif - RL_SETSTATE(RL_STATE_MOREINPUT); c = rl_read_key (); RL_UNSETSTATE(RL_STATE_MOREINPUT); #if defined (HANDLE_SIGNALS) - _rl_restore_tty_signals (); + if (RL_ISSTATE (RL_STATE_CALLBACK) == 0) + _rl_restore_tty_signals (); #endif return (_rl_insert_char (count, c)); } +#if defined (READLINE_CALLBACKS) +static int +_rl_insert_next_callback (data) + _rl_callback_generic_arg *data; +{ + int count; + + count = data->count; + + /* Deregister function, let rl_callback_read_char deallocate data */ + _rl_callback_func = 0; + _rl_want_redisplay = 1; + + return _rl_insert_next (count); +} +#endif + +int +rl_quoted_insert (count, key) + int count, key; +{ + /* Let's see...should the callback interface futz with signal handling? */ +#if defined (HANDLE_SIGNALS) + if (RL_ISSTATE (RL_STATE_CALLBACK) == 0) + _rl_disable_tty_signals (); +#endif + +#if defined (READLINE_CALLBACKS) + if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + _rl_callback_data = _rl_callback_data_alloc (count); + _rl_callback_func = _rl_insert_next_callback; + return (0); + } +#endif + + return _rl_insert_next (count); +} + /* Insert a tab character. */ int -rl_tab_insert (int count, int key __attribute__((unused))) +rl_tab_insert (count, key) + int count, key; { return (_rl_insert_char (count, '\t')); } @@ -858,7 +916,8 @@ rl_tab_insert (int count, int key __attribute__((unused))) KEY is the key that invoked this command. I guess it could have meaning in the future. */ int -rl_newline (int count __attribute__((unused)), int key __attribute__((unused))) +rl_newline (count, key) + int count, key; { rl_done = 1; @@ -891,8 +950,8 @@ rl_newline (int count __attribute__((unused)), int key __attribute__((unused))) is just a stub, you bind keys to it and the code in _rl_dispatch () is special cased. */ int -rl_do_lowercase_version (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_do_lowercase_version (ignore1, ignore2) + int ignore1, ignore2; { return 0; } @@ -979,43 +1038,17 @@ _rl_rubout_char (count, key) return -1; } + orig_point = rl_point; if (count > 1 || rl_explicit_arg) { - orig_point = rl_point; -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - rl_backward_char (count, key); - else -#endif - rl_backward_byte (count, key); + rl_backward_char (count, key); rl_kill_text (orig_point, rl_point); } - else + else if (MB_CUR_MAX == 1 || rl_byte_oriented) { -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX == 1 || rl_byte_oriented) - { -#endif - c = rl_line_buffer[--rl_point]; - rl_delete_text (rl_point, rl_point + 1); -#if defined (HANDLE_MULTIBYTE) - } - else - { - int orig_point2; - - orig_point2 = rl_point; - rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO); - c = rl_line_buffer[rl_point]; - rl_delete_text (rl_point, orig_point2); - } -#endif /* HANDLE_MULTIBYTE */ - - /* I don't think that the hack for end of line is needed for - multibyte chars. */ -#if defined (HANDLE_MULTIBYTE) - if (MB_CUR_MAX == 1 || rl_byte_oriented) -#endif + c = rl_line_buffer[--rl_point]; + rl_delete_text (rl_point, orig_point); + /* The erase-at-end-of-line hack is of questionable merit now. */ if (rl_point == rl_end && ISPRINT (c) && _rl_last_c_pos) { int l; @@ -1023,6 +1056,11 @@ _rl_rubout_char (count, key) _rl_erase_at_end_of_line (l); } } + else + { + rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO); + rl_delete_text (rl_point, orig_point); + } return 0; } @@ -1033,7 +1071,7 @@ int rl_delete (count, key) int count, key; { - int r; + int xpoint; if (count < 0) return (_rl_rubout_char (-count, key)); @@ -1046,28 +1084,21 @@ rl_delete (count, key) if (count > 1 || rl_explicit_arg) { - int orig_point = rl_point; -#if defined (HANDLE_MULTIBYTE) + xpoint = rl_point; if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) rl_forward_char (count, key); else -#endif rl_forward_byte (count, key); - r = rl_kill_text (orig_point, rl_point); - rl_point = orig_point; - return r; + rl_kill_text (xpoint, rl_point); + rl_point = xpoint; } else { - int new_point; - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - new_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); - else - new_point = rl_point + 1; - - return (rl_delete_text (rl_point, new_point)); + xpoint = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); + rl_delete_text (rl_point, xpoint); } + return 0; } /* Delete the character under the cursor, unless the insertion @@ -1086,8 +1117,8 @@ rl_rubout_or_delete (count, key) /* Delete all spaces and tabs around point. */ int -rl_delete_horizontal_space (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_delete_horizontal_space (count, ignore) + int count, ignore; { int start = rl_point; @@ -1104,6 +1135,10 @@ rl_delete_horizontal_space (int count __attribute__((unused)), rl_delete_text (start, rl_point); rl_point = start; } + + if (rl_point < 0) + rl_point = 0; + return 0; } @@ -1127,13 +1162,14 @@ rl_delete_or_show_completions (count, key) /* Turn the current line into a comment in shell history. A K*rn shell style function. */ int -rl_insert_comment (int count __attribute__((unused)), int key) +rl_insert_comment (count, key) + int count, key; { char *rl_comment_text; int rl_comment_len; rl_beg_of_line (1, key); - rl_comment_text = _rl_comment_begin ? _rl_comment_begin : (char*) RL_COMMENT_BEGIN_DEFAULT; + rl_comment_text = _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT; if (rl_explicit_arg == 0) rl_insert_text (rl_comment_text); @@ -1165,21 +1201,24 @@ rl_insert_comment (int count __attribute__((unused)), int key) /* Uppercase the word at point. */ int -rl_upcase_word (int count, int key __attribute__((unused))) +rl_upcase_word (count, key) + int count, key; { return (rl_change_case (count, UpCase)); } /* Lowercase the word at point. */ int -rl_downcase_word (int count, int key __attribute__((unused))) +rl_downcase_word (count, key) + int count, key; { return (rl_change_case (count, DownCase)); } /* Upcase the first letter, downcase the rest. */ int -rl_capitalize_word (int count, int key __attribute__((unused))) +rl_capitalize_word (count, key) + int count, key; { return (rl_change_case (count, CapCase)); } @@ -1193,42 +1232,80 @@ static int rl_change_case (count, op) int count, op; { - register int start, end; - int inword, c; + int start, next, end; + int inword, c, nc, nop; +#if defined (HANDLE_MULTIBYTE) + wchar_t wc, nwc; + char mb[MB_LEN_MAX+1]; + int mlen; + mbstate_t mps; +#endif start = rl_point; rl_forward_word (count, 0); end = rl_point; + if (op != UpCase && op != DownCase && op != CapCase) + { + rl_ding (); + return -1; + } + if (count < 0) SWAP (start, end); +#if defined (HANDLE_MULTIBYTE) + memset (&mps, 0, sizeof (mbstate_t)); +#endif + /* We are going to modify some text, so let's prepare to undo it. */ rl_modifying (start, end); - for (inword = 0; start < end; start++) + inword = 0; + while (start < end) { - c = rl_line_buffer[start]; - switch (op) - { - case UpCase: - rl_line_buffer[start] = _rl_to_upper (c); - break; + c = _rl_char_value (rl_line_buffer, start); + /* This assumes that the upper and lower case versions are the same width. */ + next = MB_NEXTCHAR (rl_line_buffer, start, 1, MB_FIND_NONZERO); - case DownCase: - rl_line_buffer[start] = _rl_to_lower (c); - break; - - case CapCase: - rl_line_buffer[start] = (inword == 0) ? _rl_to_upper (c) : _rl_to_lower (c); - inword = rl_alphabetic (rl_line_buffer[start]); - break; + if (_rl_walphabetic (c) == 0) + { + inword = 0; + start = next; + continue; + } - default: - rl_ding (); - return -1; + if (op == CapCase) + { + nop = inword ? DownCase : UpCase; + inword = 1; + } + else + nop = op; + if (MB_CUR_MAX == 1 || rl_byte_oriented || isascii (c)) + { + nc = (nop == UpCase) ? _rl_to_upper (c) : _rl_to_lower (c); + rl_line_buffer[start] = nc; + } +#if defined (HANDLE_MULTIBYTE) + else + { + mbrtowc (&wc, rl_line_buffer + start, end - start, &mps); + nwc = (nop == UpCase) ? _rl_to_wupper (wc) : _rl_to_wlower (wc); + if (nwc != wc) /* just skip unchanged characters */ + { + mlen = wcrtomb (mb, nwc, &mps); + if (mlen > 0) + mb[mlen] = '\0'; + /* Assume the same width */ + strncpy (rl_line_buffer + start, mb, mlen); + } } +#endif + + start = next; } + rl_point = end; return 0; } @@ -1303,15 +1380,16 @@ rl_transpose_words (count, key) /* Transpose the characters at point. If point is at the end of the line, then transpose the characters before point. */ int -rl_transpose_chars (int count, int key __attribute__((unused))) +rl_transpose_chars (count, key) + int count, key; { #if defined (HANDLE_MULTIBYTE) char *dummy; - int i, prev_point; + int i; #else char dummy[2]; #endif - int char_length; + int char_length, prev_point; if (count == 0) return 0; @@ -1326,20 +1404,12 @@ rl_transpose_chars (int count, int key __attribute__((unused))) if (rl_point == rl_end) { - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO); - else - --rl_point; + rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_NONZERO); count = 1; } -#if defined (HANDLE_MULTIBYTE) prev_point = rl_point; - if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO); - else -#endif - rl_point--; + rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_NONZERO); #if defined (HANDLE_MULTIBYTE) char_length = prev_point - rl_point; @@ -1473,15 +1543,51 @@ _rl_char_search (count, fdir, bdir) } #endif /* !HANDLE_MULTIBYTE */ +#if defined (READLINE_CALLBACKS) +static int +_rl_char_search_callback (data) + _rl_callback_generic_arg *data; +{ + _rl_callback_func = 0; + _rl_want_redisplay = 1; + + return (_rl_char_search (data->count, data->i1, data->i2)); +} +#endif + int -rl_char_search (int count, int key __attribute__((unused))) +rl_char_search (count, key) + int count, key; { +#if defined (READLINE_CALLBACKS) + if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + _rl_callback_data = _rl_callback_data_alloc (count); + _rl_callback_data->i1 = FFIND; + _rl_callback_data->i2 = BFIND; + _rl_callback_func = _rl_char_search_callback; + return (0); + } +#endif + return (_rl_char_search (count, FFIND, BFIND)); } int -rl_backward_char_search (int count, int key __attribute__((unused))) +rl_backward_char_search (count, key) + int count, key; { +#if defined (READLINE_CALLBACKS) + if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + _rl_callback_data = _rl_callback_data_alloc (count); + _rl_callback_data->i1 = BFIND; + _rl_callback_data->i2 = FFIND; + _rl_callback_func = _rl_char_search_callback; + return (0); + } +#endif + return (_rl_char_search (count, BFIND, FFIND)); } @@ -1505,15 +1611,16 @@ _rl_set_mark_at_pos (position) /* A bindable command to set the mark. */ int -rl_set_mark (int count, int key __attribute__((unused))) +rl_set_mark (count, key) + int count, key; { return (_rl_set_mark_at_pos (rl_explicit_arg ? count : rl_point)); } /* Exchange the position of mark and point. */ int -rl_exchange_point_and_mark (int count __attribute__((unused)), - int key __attribute__((unused))) +rl_exchange_point_and_mark (count, key) + int count, key; { if (rl_mark > rl_end) rl_mark = -1; diff --git a/cmd-line-utils/readline/tilde.c b/cmd-line-utils/readline/tilde.c index 91eead0d9e2..1b76c9f2404 100644 --- a/cmd-line-utils/readline/tilde.c +++ b/cmd-line-utils/readline/tilde.c @@ -19,9 +19,9 @@ along with Readline; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ -#define READLINE_LIBRARY - -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #if defined (HAVE_UNISTD_H) # ifdef _MINIX @@ -43,7 +43,9 @@ #endif /* HAVE_STDLIB_H */ #include <sys/types.h> +#if defined (HAVE_PWD_H) #include <pwd.h> +#endif #include "tilde.h" @@ -54,8 +56,12 @@ static void *xmalloc (), *xrealloc (); #endif /* TEST || STATIC_MALLOC */ #if !defined (HAVE_GETPW_DECLS) +# if defined (HAVE_GETPWUID) extern struct passwd *getpwuid PARAMS((uid_t)); +# endif +# if defined (HAVE_GETPWNAM) extern struct passwd *getpwnam PARAMS((const char *)); +# endif #endif /* !HAVE_GETPW_DECLS */ #if !defined (savestring) @@ -190,7 +196,7 @@ tilde_expand (string) int result_size, result_index; result_index = result_size = 0; - if ((result = strchr (string, '~'))) + if (result = strchr (string, '~')) result = (char *)xmalloc (result_size = (strlen (string) + 16)); else result = (char *)xmalloc (result_size = (strlen (string) + 1)); @@ -277,6 +283,39 @@ isolate_tilde_prefix (fname, lenp) return ret; } +#if 0 +/* Public function to scan a string (FNAME) beginning with a tilde and find + the portion of the string that should be passed to the tilde expansion + function. Right now, it just calls tilde_find_suffix and allocates new + memory, but it can be expanded to do different things later. */ +char * +tilde_find_word (fname, flags, lenp) + const char *fname; + int flags, *lenp; +{ + int x; + char *r; + + x = tilde_find_suffix (fname); + if (x == 0) + { + r = savestring (fname); + if (lenp) + *lenp = 0; + } + else + { + r = (char *)xmalloc (1 + x); + strncpy (r, fname, x); + r[x] = '\0'; + if (lenp) + *lenp = x; + } + + return r; +} +#endif + /* Return a string that is PREFIX concatenated with SUFFIX starting at SUFFIND. */ static char * @@ -347,7 +386,11 @@ tilde_expand_word (filename) /* No preexpansion hook, or the preexpansion hook failed. Look in the password database. */ dirname = (char *)NULL; +#if defined (HAVE_GETPWNAM) user_entry = getpwnam (username); +#else + user_entry = 0; +#endif if (user_entry == 0) { /* If the calling program has a special syntax for expanding tildes, @@ -361,19 +404,20 @@ tilde_expand_word (filename) free (expansion); } } - free (username); /* If we don't have a failure hook, or if the failure hook did not expand the tilde, return a copy of what we were passed. */ if (dirname == 0) dirname = savestring (filename); } +#if defined (HAVE_GETPWENT) else - { - free (username); - dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len); - } + dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len); +#endif + free (username); +#if defined (HAVE_GETPWENT) endpwent (); +#endif return (dirname); } diff --git a/cmd-line-utils/readline/tilde.h b/cmd-line-utils/readline/tilde.h index f8182c999d9..c58ce20e7a2 100644 --- a/cmd-line-utils/readline/tilde.h +++ b/cmd-line-utils/readline/tilde.h @@ -71,6 +71,9 @@ extern char *tilde_expand PARAMS((const char *)); tilde. If there is no expansion, call tilde_expansion_failure_hook. */ extern char *tilde_expand_word PARAMS((const char *)); +/* Find the portion of the string beginning with ~ that should be expanded. */ +extern char *tilde_find_word PARAMS((const char *, int, int *)); + #ifdef __cplusplus } #endif diff --git a/cmd-line-utils/readline/undo.c b/cmd-line-utils/readline/undo.c index 4d256f492b8..9d9bd25ba8f 100644 --- a/cmd-line-utils/readline/undo.c +++ b/cmd-line-utils/readline/undo.c @@ -1,7 +1,7 @@ /* readline.c -- a general facility for reading lines of input with emacs style editing and completion. */ -/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1987, 1989, 1992, 2006 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -22,7 +22,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> @@ -48,6 +50,8 @@ #include "rlprivate.h" #include "xmalloc.h" +extern void replace_history_data PARAMS((int, histdata_t *, histdata_t *)); + /* Non-zero tells rl_delete_text and rl_insert_text to not add to the undo list. */ int _rl_doing_an_undo = 0; @@ -64,19 +68,35 @@ UNDO_LIST *rl_undo_list = (UNDO_LIST *)NULL; /* */ /* **************************************************************** */ -/* Remember how to undo something. Concatenate some undos if that - seems right. */ -void -rl_add_undo (what, start, end, text) +static UNDO_LIST * +alloc_undo_entry (what, start, end, text) enum undo_code what; int start, end; char *text; { - UNDO_LIST *temp = (UNDO_LIST *)xmalloc (sizeof (UNDO_LIST)); + UNDO_LIST *temp; + + temp = (UNDO_LIST *)xmalloc (sizeof (UNDO_LIST)); temp->what = what; temp->start = start; temp->end = end; temp->text = text; + + temp->next = (UNDO_LIST *)NULL; + return temp; +} + +/* Remember how to undo something. Concatenate some undos if that + seems right. */ +void +rl_add_undo (what, start, end, text) + enum undo_code what; + int start, end; + char *text; +{ + UNDO_LIST *temp; + + temp = alloc_undo_entry (what, start, end, text); temp->next = rl_undo_list; rl_undo_list = temp; } @@ -85,9 +105,12 @@ rl_add_undo (what, start, end, text) void rl_free_undo_list () { + UNDO_LIST *release, *orig_list; + + orig_list = rl_undo_list; while (rl_undo_list) { - UNDO_LIST *release = rl_undo_list; + release = rl_undo_list; rl_undo_list = rl_undo_list->next; if (release->what == UNDO_DELETE) @@ -96,6 +119,43 @@ rl_free_undo_list () free (release); } rl_undo_list = (UNDO_LIST *)NULL; + replace_history_data (-1, (histdata_t *)orig_list, (histdata_t *)NULL); +} + +UNDO_LIST * +_rl_copy_undo_entry (entry) + UNDO_LIST *entry; +{ + UNDO_LIST *new; + + new = alloc_undo_entry (entry->what, entry->start, entry->end, (char *)NULL); + new->text = entry->text ? savestring (entry->text) : 0; + return new; +} + +UNDO_LIST * +_rl_copy_undo_list (head) + UNDO_LIST *head; +{ + UNDO_LIST *list, *new, *roving, *c; + + list = head; + new = 0; + while (list) + { + c = _rl_copy_undo_entry (list); + if (new == 0) + roving = new = c; + else + { + roving->next = c; + roving = roving->next; + } + list = list->next; + } + + roving->next = 0; + return new; } /* Undo the next thing in the list. Return 0 if there @@ -159,6 +219,8 @@ rl_do_undo () release = rl_undo_list; rl_undo_list = rl_undo_list->next; + replace_history_data (-1, (histdata_t *)release, (histdata_t *)rl_undo_list); + free (release); } while (waiting_for_begin); @@ -175,7 +237,7 @@ _rl_fix_last_undo_of_type (type, start, end) for (rl = rl_undo_list; rl; rl = rl->next) { - if (rl->what == (unsigned int) type) + if (rl->what == type) { rl->start = start; rl->end = end; @@ -226,7 +288,8 @@ rl_modifying (start, end) /* Revert the current line to its previous state. */ int -rl_revert_line (int count __attribute__((unused)), int key __attribute__((unused))) +rl_revert_line (count, key) + int count, key; { if (!rl_undo_list) rl_ding (); @@ -234,13 +297,19 @@ rl_revert_line (int count __attribute__((unused)), int key __attribute__((unuse { while (rl_undo_list) rl_do_undo (); +#if defined (VI_MODE) + if (rl_editing_mode == vi_mode) + rl_point = rl_mark = 0; /* rl_end should be set correctly */ +#endif } + return 0; } /* Do some undoing of things that were done. */ int -rl_undo_command (int count, int key __attribute__((unused))) +rl_undo_command (count, key) + int count, key; { if (count < 0) return 0; /* Nothing to do. */ diff --git a/cmd-line-utils/readline/util.c b/cmd-line-utils/readline/util.c index d5fe51a7bf2..e44ef64349d 100644 --- a/cmd-line-utils/readline/util.c +++ b/cmd-line-utils/readline/util.c @@ -1,6 +1,6 @@ /* util.c -- readline utility functions */ -/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -21,7 +21,9 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> #include <fcntl.h> @@ -42,6 +44,7 @@ /* System-specific feature definitions and include files. */ #include "rldefs.h" +#include "rlmbutil.h" #if defined (TIOCSTAT_IN_SYS_IOCTL) # include <sys/ioctl.h> @@ -76,13 +79,29 @@ rl_alphabetic (c) strchr (pathname_alphabetic_chars, c) != NULL); } +#if defined (HANDLE_MULTIBYTE) +int +_rl_walphabetic (wc) + wchar_t wc; +{ + int c; + + if (iswalnum (wc)) + return (1); + + c = wc & 0177; + return (_rl_allow_pathname_alphabetic_chars && + strchr (pathname_alphabetic_chars, c) != NULL); +} +#endif + /* How to abort things. */ int _rl_abort_internal () { rl_ding (); rl_clear_message (); - _rl_init_argument (); + _rl_reset_argument (); rl_clear_pending_input (); RL_UNSETSTATE (RL_STATE_MACRODEF); @@ -95,13 +114,15 @@ _rl_abort_internal () } int -rl_abort (int count __attribute__((unused)), int key __attribute__((unused))) +rl_abort (count, key) + int count, key; { return (_rl_abort_internal ()); } int -rl_tty_status (int count __attribute__((unused)), int key __attribute__((unused))) +rl_tty_status (count, key) + int count, key; { #if defined (TIOCSTAT) ioctl (1, TIOCSTAT, (char *)0); @@ -150,7 +171,8 @@ rl_extend_line_buffer (len) /* A function for simple tilde expansion. */ int -rl_tilde_expand (int ignore __attribute__((unused)), int key __attribute__((unused))) +rl_tilde_expand (ignore, key) + int ignore, key; { register int start, end; char *homedir, *temp; diff --git a/cmd-line-utils/readline/vi_keymap.c b/cmd-line-utils/readline/vi_keymap.c index 53a67c674ce..4b48c75cc5d 100644 --- a/cmd-line-utils/readline/vi_keymap.c +++ b/cmd-line-utils/readline/vi_keymap.c @@ -130,7 +130,7 @@ KEYMAP_ENTRY_ARRAY vi_movement_keymap = { { ISFUNC, rl_revert_line }, /* U */ { ISFUNC, (rl_command_func_t *)0x0 }, /* V */ { ISFUNC, rl_vi_next_word }, /* W */ - { ISFUNC, rl_rubout }, /* X */ + { ISFUNC, rl_vi_rubout }, /* X */ { ISFUNC, rl_vi_yank_to }, /* Y */ { ISFUNC, (rl_command_func_t *)0x0 }, /* Z */ diff --git a/cmd-line-utils/readline/vi_mode.c b/cmd-line-utils/readline/vi_mode.c index a277fe2c237..d0b7e330adc 100644 --- a/cmd-line-utils/readline/vi_mode.c +++ b/cmd-line-utils/readline/vi_mode.c @@ -1,7 +1,7 @@ /* vi_mode.c -- A vi emulation mode for Bash. Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */ -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for reading lines of text with interactive input and history editing. @@ -31,7 +31,9 @@ #if defined (VI_MODE) -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <sys/types.h> @@ -88,6 +90,7 @@ static int _rl_vi_last_arg_sign = 1; static int _rl_vi_last_motion; #if defined (HANDLE_MULTIBYTE) static char _rl_vi_last_search_mbchar[MB_LEN_MAX]; +static int _rl_vi_last_search_mblen; #else static int _rl_vi_last_search_char; #endif @@ -105,15 +108,35 @@ static int vi_mark_chars['z' - 'a' + 1]; static void _rl_vi_stuff_insert PARAMS((int)); static void _rl_vi_save_insert PARAMS((UNDO_LIST *)); + +static void _rl_vi_backup PARAMS((void)); + +static int _rl_vi_arg_dispatch PARAMS((int)); static int rl_digit_loop1 PARAMS((void)); +static int _rl_vi_set_mark PARAMS((void)); +static int _rl_vi_goto_mark PARAMS((void)); + +static void _rl_vi_append_forward PARAMS((int)); + +static int _rl_vi_callback_getchar PARAMS((char *, int)); + +#if defined (READLINE_CALLBACKS) +static int _rl_vi_callback_set_mark PARAMS((_rl_callback_generic_arg *)); +static int _rl_vi_callback_goto_mark PARAMS((_rl_callback_generic_arg *)); +static int _rl_vi_callback_change_char PARAMS((_rl_callback_generic_arg *)); +static int _rl_vi_callback_char_search PARAMS((_rl_callback_generic_arg *)); +#endif + void _rl_vi_initialize_line () { register int i; - for (i = 0; i < (int) (sizeof (vi_mark_chars) / sizeof (int)); i++) + for (i = 0; i < sizeof (vi_mark_chars) / sizeof (int); i++) vi_mark_chars[i] = -1; + + RL_UNSETSTATE(RL_STATE_VICMDONCE); } void @@ -166,7 +189,8 @@ _rl_vi_stuff_insert (count) redo a text modification command. The default for _rl_vi_last_command puts you back into insert mode. */ int -rl_vi_redo (int count, int c __attribute__((unused))) +rl_vi_redo (count, c) + int count, c; { int r; @@ -185,7 +209,16 @@ rl_vi_redo (int count, int c __attribute__((unused))) _rl_vi_stuff_insert (count); /* And back up point over the last character inserted. */ if (rl_point > 0) - rl_point--; + _rl_vi_backup (); + } + /* Ditto for redoing an insert with `a', but move forward a character first + like the `a' command does. */ + else if (_rl_vi_last_command == 'a' && vi_insert_buffer && *vi_insert_buffer) + { + _rl_vi_append_forward ('a'); + _rl_vi_stuff_insert (count); + if (rl_point > 0) + _rl_vi_backup (); } else r = _rl_dispatch (_rl_vi_last_command, _rl_keymap); @@ -204,7 +237,8 @@ rl_vi_undo (count, key) /* Yank the nth arg from the previous line into this line at point. */ int -rl_vi_yank_arg (int count, int key __attribute__((unused))) +rl_vi_yank_arg (count, key) + int count, key; { /* Readline thinks that the first word on a line is the 0th, while vi thinks the first word on a line is the 1st. Compensate. */ @@ -268,10 +302,12 @@ rl_vi_search (count, key) switch (key) { case '?': + _rl_free_saved_history_line (); rl_noninc_forward_search (count, key); break; case '/': + _rl_free_saved_history_line (); rl_noninc_reverse_search (count, key); break; @@ -284,7 +320,8 @@ rl_vi_search (count, key) /* Completion, from vi's point of view. */ int -rl_vi_complete (int ignore __attribute__((unused)), int key) +rl_vi_complete (ignore, key) + int ignore, key; { if ((rl_point < rl_end) && (!whitespace (rl_line_buffer[rl_point]))) { @@ -310,7 +347,8 @@ rl_vi_complete (int ignore __attribute__((unused)), int key) /* Tilde expansion for vi mode. */ int -rl_vi_tilde_expand (int ignore __attribute__((unused)), int key) +rl_vi_tilde_expand (ignore, key) + int ignore, key; { rl_tilde_expand (0, key); rl_vi_start_inserting (key, 1, rl_arg_sign); @@ -380,7 +418,8 @@ rl_vi_end_word (count, key) /* Move forward a word the way that 'W' does. */ int -rl_vi_fWord (int count, int ignore __attribute__((unused))) +rl_vi_fWord (count, ignore) + int count, ignore; { while (count-- && rl_point < (rl_end - 1)) { @@ -396,7 +435,8 @@ rl_vi_fWord (int count, int ignore __attribute__((unused))) } int -rl_vi_bWord (int count, int ignore __attribute__((unused))) +rl_vi_bWord (count, ignore) + int count, ignore; { while (count-- && rl_point > 0) { @@ -419,7 +459,8 @@ rl_vi_bWord (int count, int ignore __attribute__((unused))) } int -rl_vi_eWord(int count, int ignore __attribute__((unused))) +rl_vi_eWord (count, ignore) + int count, ignore; { while (count-- && rl_point < (rl_end - 1)) { @@ -449,7 +490,8 @@ rl_vi_eWord(int count, int ignore __attribute__((unused))) } int -rl_vi_fword (int count, int ignore __attribute__((unused))) +rl_vi_fword (count, ignore) + int count, ignore; { while (count-- && rl_point < (rl_end - 1)) { @@ -474,7 +516,8 @@ rl_vi_fword (int count, int ignore __attribute__((unused))) } int -rl_vi_bword (int count, int ignore __attribute__((unused))) +rl_vi_bword (count, ignore) + int count, ignore; { while (count-- && rl_point > 0) { @@ -512,7 +555,8 @@ rl_vi_bword (int count, int ignore __attribute__((unused))) } int -rl_vi_eword (int count, int ignore __attribute__((unused))) +rl_vi_eword (count, ignore) + int count, ignore; { while (count-- && rl_point < rl_end - 1) { @@ -536,34 +580,46 @@ rl_vi_eword (int count, int ignore __attribute__((unused))) } int -rl_vi_insert_beg (int count __attribute__((unused)), int key) +rl_vi_insert_beg (count, key) + int count, key; { rl_beg_of_line (1, key); rl_vi_insertion_mode (1, key); return (0); } -int -rl_vi_append_mode (int count __attribute__((unused)), int key) +static void +_rl_vi_append_forward (key) + int key; { + int point; + if (rl_point < rl_end) { if (MB_CUR_MAX == 1 || rl_byte_oriented) rl_point++; else { - int point = rl_point; + point = rl_point; rl_forward_char (1, key); if (point == rl_point) rl_point = rl_end; } } - rl_vi_insertion_mode (1, key); +} + +int +rl_vi_append_mode (count, key) + int count, key; +{ + _rl_vi_append_forward (key); + rl_vi_start_inserting (key, 1, rl_arg_sign); return (0); } int -rl_vi_append_eol (int count __attribute__((unused)), int key) +rl_vi_append_eol (count, key) + int count, key; { rl_end_of_line (1, key); rl_vi_append_mode (1, key); @@ -572,7 +628,8 @@ rl_vi_append_eol (int count __attribute__((unused)), int key) /* What to do in the case of C-d. */ int -rl_vi_eof_maybe (int count __attribute__((unused)), int c __attribute__((unused))) +rl_vi_eof_maybe (count, c) + int count, c; { return (rl_newline (1, '\n')); } @@ -582,7 +639,8 @@ rl_vi_eof_maybe (int count __attribute__((unused)), int c __attribute__((unused) /* Switching from one mode to the other really just involves switching keymaps. */ int -rl_vi_insertion_mode (int count __attribute__((unused)), int key) +rl_vi_insertion_mode (count, key) + int count, key; { _rl_keymap = vi_insertion_keymap; _rl_vi_last_key_before_insert = key; @@ -595,7 +653,7 @@ _rl_vi_save_insert (up) { int len, start, end; - if (up == 0) + if (up == 0 || up->what != UNDO_INSERT) { if (vi_insert_buffer_size >= 1) vi_insert_buffer[0] = '\0'; @@ -644,13 +702,21 @@ _rl_vi_done_inserting () } int -rl_vi_movement_mode (int count __attribute__((unused)), int key) +rl_vi_movement_mode (count, key) + int count, key; { if (rl_point > 0) rl_backward_char (1, key); _rl_keymap = vi_movement_keymap; _rl_vi_done_inserting (); + + /* This is how POSIX.2 says `U' should behave -- everything up until the + first time you go into command mode should not be undone. */ + if (RL_ISSTATE (RL_STATE_VICMDONCE) == 0) + rl_free_undo_list (); + + RL_SETSTATE (RL_STATE_VICMDONCE); return (0); } @@ -672,7 +738,7 @@ _rl_vi_change_mbchar_case (count) { wchar_t wc; char mb[MB_LEN_MAX+1]; - int local_mblen; + int mlen, p; mbstate_t ps; memset (&ps, 0, sizeof (mbstate_t)); @@ -695,11 +761,14 @@ _rl_vi_change_mbchar_case (count) /* Vi is kind of strange here. */ if (wc) { - local_mblen = wcrtomb (mb, wc, &ps); - if (local_mblen >= 0) - mb[local_mblen] = '\0'; + p = rl_point; + mlen = wcrtomb (mb, wc, &ps); + if (mlen >= 0) + mb[mlen] = '\0'; rl_begin_undo_group (); - rl_delete (1, 0); + rl_vi_delete (1, 0); + if (rl_point < p) /* Did we retreat at EOL? */ + rl_point++; /* XXX - should we advance more than 1 for mbchar? */ rl_insert_text (mb); rl_end_undo_group (); rl_vi_check (); @@ -713,7 +782,8 @@ _rl_vi_change_mbchar_case (count) #endif int -rl_vi_change_case (int count, int ignore __attribute__((unused))) +rl_vi_change_case (count, ignore) + int count, ignore; { int c, p; @@ -772,6 +842,15 @@ rl_vi_put (count, key) return (0); } +static void +_rl_vi_backup () +{ + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO); + else + rl_point--; +} + int rl_vi_check () { @@ -816,7 +895,9 @@ rl_vi_domove (key, nextkey) save = rl_numeric_arg; rl_numeric_arg = _rl_digit_value (c); rl_explicit_arg = 1; + RL_SETSTATE (RL_STATE_NUMERICARG|RL_STATE_VIMOTION); rl_digit_loop1 (); + RL_UNSETSTATE (RL_STATE_VIMOTION); rl_numeric_arg *= save; RL_SETSTATE(RL_STATE_MOREINPUT); c = rl_read_key (); /* real command */ @@ -889,52 +970,59 @@ rl_vi_domove (key, nextkey) return (0); } +/* Process C as part of the current numeric argument. Return -1 if the + argument should be aborted, 0 if we should not read any more chars, and + 1 if we should continue to read chars. */ +static int +_rl_vi_arg_dispatch (c) + int c; +{ + int key; + + key = c; + if (c >= 0 && _rl_keymap[c].type == ISFUNC && _rl_keymap[c].function == rl_universal_argument) + { + rl_numeric_arg *= 4; + return 1; + } + + c = UNMETA (c); + + if (_rl_digit_p (c)) + { + if (rl_explicit_arg) + rl_numeric_arg = (rl_numeric_arg * 10) + _rl_digit_value (c); + else + rl_numeric_arg = _rl_digit_value (c); + rl_explicit_arg = 1; + return 1; + } + else + { + rl_clear_message (); + rl_stuff_char (key); + return 0; + } +} + /* A simplified loop for vi. Don't dispatch key at end. Don't recognize minus sign? Should this do rl_save_prompt/rl_restore_prompt? */ static int rl_digit_loop1 () { - int key, c; + int c, r; - RL_SETSTATE(RL_STATE_NUMERICARG); while (1) { - if (rl_numeric_arg > 1000000) - { - rl_explicit_arg = rl_numeric_arg = 0; - rl_ding (); - rl_clear_message (); - RL_UNSETSTATE(RL_STATE_NUMERICARG); - return 1; - } - rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg); - RL_SETSTATE(RL_STATE_MOREINPUT); - key = c = rl_read_key (); - RL_UNSETSTATE(RL_STATE_MOREINPUT); + if (_rl_arg_overflow ()) + return 1; - if (c >= 0 && _rl_keymap[c].type == ISFUNC && - _rl_keymap[c].function == rl_universal_argument) - { - rl_numeric_arg *= 4; - continue; - } + c = _rl_arg_getchar (); - c = UNMETA (c); - if (_rl_digit_p (c)) - { - if (rl_explicit_arg) - rl_numeric_arg = (rl_numeric_arg * 10) + _rl_digit_value (c); - else - rl_numeric_arg = _rl_digit_value (c); - rl_explicit_arg = 1; - } - else - { - rl_clear_message (); - rl_stuff_char (key); - break; - } + r = _rl_vi_arg_dispatch (c); + if (r <= 0) + break; } RL_UNSETSTATE(RL_STATE_NUMERICARG); @@ -942,7 +1030,8 @@ rl_digit_loop1 () } int -rl_vi_delete_to (int count __attribute__((unused)), int key) +rl_vi_delete_to (count, key) + int count, key; { int c; @@ -967,7 +1056,8 @@ rl_vi_delete_to (int count __attribute__((unused)), int key) } int -rl_vi_change_to (int count __attribute__((unused)), int key) +rl_vi_change_to (count, key) + int count, key; { int c, start_pos; @@ -1019,10 +1109,12 @@ rl_vi_change_to (int count __attribute__((unused)), int key) } int -rl_vi_yank_to (int count __attribute__((unused)), int key) +rl_vi_yank_to (count, key) + int count, key; { - int c, save = rl_point; + int c, save; + save = rl_point; if (_rl_uppercase_p (key)) rl_stuff_char ('$'); @@ -1047,11 +1139,45 @@ rl_vi_yank_to (int count __attribute__((unused)), int key) } int +rl_vi_rubout (count, key) + int count, key; +{ + int opoint; + + if (count < 0) + return (rl_vi_delete (-count, key)); + + if (rl_point == 0) + { + rl_ding (); + return -1; + } + + opoint = rl_point; + if (count > 1 && MB_CUR_MAX > 1 && rl_byte_oriented == 0) + rl_backward_char (count, key); + else if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO); + else + rl_point -= count; + + if (rl_point < 0) + rl_point = 0; + + rl_kill_text (rl_point, opoint); + + return (0); +} + +int rl_vi_delete (count, key) int count, key; { int end; + if (count < 0) + return (rl_vi_rubout (-count, key)); + if (rl_end == 0) { rl_ding (); @@ -1070,11 +1196,13 @@ rl_vi_delete (count, key) if (rl_point > 0 && rl_point == rl_end) rl_backward_char (1, key); + return (0); } int -rl_vi_back_to_indent (int count __attribute__((unused)), int key) +rl_vi_back_to_indent (count, key) + int count, key; { rl_beg_of_line (1, key); while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point])) @@ -1083,75 +1211,115 @@ rl_vi_back_to_indent (int count __attribute__((unused)), int key) } int -rl_vi_first_print (int count __attribute__((unused)), int key) +rl_vi_first_print (count, key) + int count, key; { return (rl_vi_back_to_indent (1, key)); } +static int _rl_cs_dir, _rl_cs_orig_dir; + +#if defined (READLINE_CALLBACKS) +static int +_rl_vi_callback_char_search (data) + _rl_callback_generic_arg *data; +{ +#if defined (HANDLE_MULTIBYTE) + _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); +#else + RL_SETSTATE(RL_STATE_MOREINPUT); + _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); +#endif + + _rl_callback_func = 0; + _rl_want_redisplay = 1; + +#if defined (HANDLE_MULTIBYTE) + return (_rl_char_search_internal (data->count, _rl_cs_dir, _rl_vi_last_search_mbchar, _rl_vi_last_search_mblen)); +#else + return (_rl_char_search_internal (data->count, _rl_cs_dir, _rl_vi_last_search_char)); +#endif +} +#endif + int rl_vi_char_search (count, key) int count, key; { #if defined (HANDLE_MULTIBYTE) static char *target; - static int mb_len; + static int tlen; #else static char target; #endif - static int orig_dir, dir; if (key == ';' || key == ',') - dir = key == ';' ? orig_dir : -orig_dir; + _rl_cs_dir = (key == ';') ? _rl_cs_orig_dir : -_rl_cs_orig_dir; else { - if (vi_redoing) -#if defined (HANDLE_MULTIBYTE) - target = _rl_vi_last_search_mbchar; -#else - target = _rl_vi_last_search_char; -#endif - else - { -#if defined (HANDLE_MULTIBYTE) - mb_len = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); - target = _rl_vi_last_search_mbchar; -#else - RL_SETSTATE(RL_STATE_MOREINPUT); - _rl_vi_last_search_char = target = rl_read_key (); - RL_UNSETSTATE(RL_STATE_MOREINPUT); -#endif - } - switch (key) { case 't': - orig_dir = dir = FTO; + _rl_cs_orig_dir = _rl_cs_dir = FTO; break; case 'T': - orig_dir = dir = BTO; + _rl_cs_orig_dir = _rl_cs_dir = BTO; break; case 'f': - orig_dir = dir = FFIND; + _rl_cs_orig_dir = _rl_cs_dir = FFIND; break; case 'F': - orig_dir = dir = BFIND; + _rl_cs_orig_dir = _rl_cs_dir = BFIND; break; } + + if (vi_redoing) + { + /* set target and tlen below */ + } +#if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + _rl_callback_data = _rl_callback_data_alloc (count); + _rl_callback_data->i1 = _rl_cs_dir; + _rl_callback_func = _rl_vi_callback_char_search; + return (0); + } +#endif + else + { +#if defined (HANDLE_MULTIBYTE) + _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); +#else + RL_SETSTATE(RL_STATE_MOREINPUT); + _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); +#endif + } } #if defined (HANDLE_MULTIBYTE) - return (_rl_char_search_internal (count, dir, target, mb_len)); + target = _rl_vi_last_search_mbchar; + tlen = _rl_vi_last_search_mblen; +#else + target = _rl_vi_last_search_char; +#endif + +#if defined (HANDLE_MULTIBYTE) + return (_rl_char_search_internal (count, _rl_cs_dir, target, tlen)); #else - return (_rl_char_search_internal (count, dir, target)); + return (_rl_char_search_internal (count, _rl_cs_dir, target)); #endif } /* Match brackets */ int -rl_vi_match (int ignore __attribute__((unused)), int key) +rl_vi_match (ignore, key) + int ignore, key; { int count = 1, brack, pos, tmp, pre; @@ -1255,24 +1423,12 @@ rl_vi_bracktype (c) } } -/* XXX - think about reading an entire mbchar with _rl_read_mbchar and - inserting it in one bunch instead of the loop below (like in - rl_vi_char_search or _rl_vi_change_mbchar_case). Set c to mbchar[0] - for test against 033 or ^C. Make sure that _rl_read_mbchar does - this right. */ -int -rl_vi_change_char (int count, int key __attribute__((unused))) +static int +_rl_vi_change_char (count, c, mb) + int count, c; + char *mb; { - int c, p; - - if (vi_redoing) - c = _rl_vi_last_replacement; - else - { - RL_SETSTATE(RL_STATE_MOREINPUT); - _rl_vi_last_replacement = c = rl_read_key (); - RL_UNSETSTATE(RL_STATE_MOREINPUT); - } + int p; if (c == '\033' || c == CTRL ('C')) return -1; @@ -1282,27 +1438,87 @@ rl_vi_change_char (int count, int key __attribute__((unused))) { p = rl_point; rl_vi_delete (1, c); + if (rl_point < p) /* Did we retreat at EOL? */ + rl_point++; #if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) - while (_rl_insert_char (1, c)) - { - RL_SETSTATE (RL_STATE_MOREINPUT); - c = rl_read_key (); - RL_UNSETSTATE (RL_STATE_MOREINPUT); - } + rl_insert_text (mb); else #endif - { - if (rl_point < p) /* Did we retreat at EOL? */ - rl_point++; - _rl_insert_char (1, c); - } + _rl_insert_char (1, c); } + + /* The cursor shall be left on the last character changed. */ + rl_backward_char (1, c); + rl_end_undo_group (); return (0); } +static int +_rl_vi_callback_getchar (mb, mlen) + char *mb; + int mlen; +{ + int c; + + RL_SETSTATE(RL_STATE_MOREINPUT); + c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +#if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + c = _rl_read_mbstring (c, mb, mlen); +#endif + + return c; +} + +#if defined (READLINE_CALLBACKS) +static int +_rl_vi_callback_change_char (data) + _rl_callback_generic_arg *data; +{ + int c; + char mb[MB_LEN_MAX]; + + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + + _rl_callback_func = 0; + _rl_want_redisplay = 1; + + return (_rl_vi_change_char (data->count, c, mb)); +} +#endif + +int +rl_vi_change_char (count, key) + int count, key; +{ + int c; + char mb[MB_LEN_MAX]; + + if (vi_redoing) + { + c = _rl_vi_last_replacement; + mb[0] = c; + mb[1] = '\0'; + } +#if defined (READLINE_CALLBACKS) + else if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + _rl_callback_data = _rl_callback_data_alloc (count); + _rl_callback_func = _rl_vi_callback_change_char; + return (0); + } +#endif + else + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + + return (_rl_vi_change_char (count, c, mb)); +} + int rl_vi_subst (count, key) int count, key; @@ -1365,7 +1581,8 @@ rl_vi_overstrike_delete (count, key) } int -rl_vi_replace (int count __attribute__((unused)), int key __attribute__((unused))) +rl_vi_replace (count, key) + int count, key; { int i; @@ -1424,8 +1641,8 @@ rl_vi_possible_completions() #endif /* Functions to save and restore marks. */ -int -rl_vi_set_mark (int count __attribute__((unused)), int key __attribute__((unused))) +static int +_rl_vi_set_mark () { int ch; @@ -1443,8 +1660,36 @@ rl_vi_set_mark (int count __attribute__((unused)), int key __attribute__((unused return 0; } +#if defined (READLINE_CALLBACKS) +static int +_rl_vi_callback_set_mark (data) + _rl_callback_generic_arg *data; +{ + _rl_callback_func = 0; + _rl_want_redisplay = 1; + + return (_rl_vi_set_mark ()); +} +#endif + int -rl_vi_goto_mark (int count __attribute__((unused)), int key __attribute__((unused))) +rl_vi_set_mark (count, key) + int count, key; +{ +#if defined (READLINE_CALLBACKS) + if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + _rl_callback_data = 0; + _rl_callback_func = _rl_vi_callback_set_mark; + return (0); + } +#endif + + return (_rl_vi_set_mark ()); +} + +static int +_rl_vi_goto_mark () { int ch; @@ -1473,4 +1718,31 @@ rl_vi_goto_mark (int count __attribute__((unused)), int key __attribute__((unuse return 0; } +#if defined (READLINE_CALLBACKS) +static int +_rl_vi_callback_goto_mark (data) + _rl_callback_generic_arg *data; +{ + _rl_callback_func = 0; + _rl_want_redisplay = 1; + + return (_rl_vi_goto_mark ()); +} +#endif + +int +rl_vi_goto_mark (count, key) + int count, key; +{ +#if defined (READLINE_CALLBACKS) + if (RL_ISSTATE (RL_STATE_CALLBACK)) + { + _rl_callback_data = 0; + _rl_callback_func = _rl_vi_callback_goto_mark; + return (0); + } +#endif + + return (_rl_vi_goto_mark ()); +} #endif /* VI_MODE */ diff --git a/cmd-line-utils/readline/xmalloc.c b/cmd-line-utils/readline/xmalloc.c index 497936d3b43..8985d340d39 100644 --- a/cmd-line-utils/readline/xmalloc.c +++ b/cmd-line-utils/readline/xmalloc.c @@ -20,7 +20,9 @@ Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (HAVE_CONFIG_H) +#include <config.h> +#endif #include <stdio.h> @@ -39,7 +41,8 @@ /* **************************************************************** */ static void -memory_error_and_abort(const char *fname) +memory_error_and_abort (fname) + char *fname; { fprintf (stderr, "%s: out of virtual memory\n", fname); exit (2); @@ -56,7 +59,7 @@ xmalloc (bytes) temp = malloc (bytes); if (temp == 0) - memory_error_and_abort("xmalloc"); + memory_error_and_abort ("xmalloc"); return (temp); } @@ -70,7 +73,7 @@ xrealloc (pointer, bytes) temp = pointer ? realloc (pointer, bytes) : malloc (bytes); if (temp == 0) - memory_error_and_abort("xrealloc"); + memory_error_and_abort ("xrealloc"); return (temp); } diff --git a/config/ac-macros/plugins.m4 b/config/ac-macros/plugins.m4 index 48754563992..8dfb698709f 100644 --- a/config/ac-macros/plugins.m4 +++ b/config/ac-macros/plugins.m4 @@ -360,6 +360,17 @@ AC_DEFUN([__MYSQL_EMIT_CHECK_PLUGIN],[ AC_MSG_ERROR([cannot disable mandatory plugin]) fi [mysql_plugin_]$2=yes + ],[ + case "$with_mysqld_ldflags " in + *"-all-static "*) + # No need to build shared plugins when mysqld is linked with + # -all-static as it won't be able to load them. + if test "X[$mysql_plugin_]$2" != Xyes -a \ + "X[$with_plugin_]$2" != Xyes; then + [with_plugin_]$2=no + fi + ;; + esac ]) if test "X[$with_plugin_]$2" = Xno; then AC_MSG_RESULT([no]) diff --git a/configure.in b/configure.in index 980519dc535..161a70dae5f 100644 --- a/configure.in +++ b/configure.in @@ -1750,7 +1750,18 @@ then LDFLAGS="$LDFLAGS -rdynamic" AC_MSG_RESULT("-rdynamic") else - AC_MSG_RESULT("none") + case "$SYSTEM_TYPE$with_mysqld_ldflags " in + *freebsd*"-all-static "*|*dragonfly*"-all-static "*) + AC_MSG_RESULT("none") + ;; + *freebsd*|*dragonfly*) + MYSQLD_EXTRA_LDFLAGS="$MYSQLD_EXTRA_LDFLAGS -export-dynamic" + AC_MSG_RESULT("-export-dynamic") + ;; + *) + AC_MSG_RESULT("none") + ;; + esac fi dnl Checks for typedefs, structures, and compiler characteristics. diff --git a/include/my_bitmap.h b/include/my_bitmap.h index ab69b2d671d..78642df3362 100644 --- a/include/my_bitmap.h +++ b/include/my_bitmap.h @@ -159,6 +159,22 @@ static inline my_bool bitmap_cmp(const MY_BITMAP *map1, const MY_BITMAP *map2) #define bitmap_set_all(MAP) \ (memset((MAP)->bitmap, 0xFF, 4*no_words_in_map((MAP)))) +/** + check, set and clear a bit of interest of an integer. + + If the bit is out of range @retval -1. Otherwise + bit_is_set @return 0 or 1 reflecting the bit is set or not; + bit_do_set @return 1 (bit is set 1) + bit_do_clear @return 0 (bit is cleared to 0) +*/ + +#define bit_is_set(I,B) (sizeof(I) * CHAR_BIT > (B) ? \ + (((I) & (ULL(1) << (B))) == 0 ? 0 : 1) : -1) +#define bit_do_set(I,B) (sizeof(I) * CHAR_BIT > (B) ? \ + ((I) |= (ULL(1) << (B)), 1) : -1) +#define bit_do_clear(I,B) (sizeof(I) * CHAR_BIT > (B) ? \ + ((I) &= ~(ULL(1) << (B)), 0) : -1) + #ifdef __cplusplus } #endif diff --git a/include/my_sys.h b/include/my_sys.h index 2ce36760032..7ae05bb96f7 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -691,6 +691,8 @@ extern WF_PACK *wf_comp(char * str); extern int wf_test(struct wild_file_pack *wf_pack,const char *name); extern void wf_end(struct wild_file_pack *buffer); extern size_t strip_sp(char * str); +extern my_bool array_append_string_unique(const char *str, + const char **array, size_t size); extern void get_date(char * to,int timeflag,time_t use_time); extern void soundex(CHARSET_INFO *, char * out_pntr, char * in_pntr, pbool remove_garbage); diff --git a/include/mysql_com.h b/include/mysql_com.h index f76486b9ec2..4ae7f66060f 100644 --- a/include/mysql_com.h +++ b/include/mysql_com.h @@ -94,6 +94,7 @@ enum enum_server_command #define TIMESTAMP_FLAG 1024 /* Field is a timestamp */ #define SET_FLAG 2048 /* field is a set */ #define NO_DEFAULT_VALUE_FLAG 4096 /* Field doesn't have default value */ +#define ON_UPDATE_NOW_FLAG 8192 /* Field is set to NOW on UPDATE */ #define NUM_FLAG 32768 /* Field is num (for clients) */ #define PART_KEY_FLAG 16384 /* Intern; Part of some key */ #define GROUP_FLAG 32768 /* Intern: Group field */ diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt index 8471bbbd76c..40e321060bb 100755 --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -75,7 +75,7 @@ SET(CLIENT_SOURCES ../mysys/array.c ../strings/bchange.c ../strings/bmove.c ../mysys/hash.c ../mysys/my_sleep.c ../mysys/default_modify.c get_password.c ../strings/int2str.c ../strings/is_prefix.c libmysql.c ../mysys/list.c ../strings/llstr.c - ../strings/longlong2str.c manager.c ../mysys/mf_cache.c + ../strings/longlong2str.c manager.c ../mysys/mf_arr_appstr.c ../mysys/mf_cache.c ../mysys/mf_dirname.c ../mysys/mf_fn_ext.c ../mysys/mf_format.c ../mysys/mf_iocache.c ../mysys/mf_iocache2.c ../mysys/mf_loadpath.c ../mysys/mf_pack.c ../mysys/mf_path.c ../mysys/mf_tempfile.c ../mysys/mf_unixpath.c diff --git a/libmysql/Makefile.shared b/libmysql/Makefile.shared index 3a2559921f9..02855532e41 100644 --- a/libmysql/Makefile.shared +++ b/libmysql/Makefile.shared @@ -59,7 +59,7 @@ mysysobjects1 = my_init.lo my_static.lo my_malloc.lo my_realloc.lo \ mf_pack.lo my_messnc.lo mf_dirname.lo mf_fn_ext.lo\ mf_wcomp.lo typelib.lo safemalloc.lo my_alloc.lo \ mf_format.lo mf_path.lo mf_unixpath.lo my_fopen.lo \ - my_symlink.lo my_fstream.lo \ + my_symlink.lo my_fstream.lo mf_arr_appstr.lo \ mf_loadpath.lo my_pthread.lo my_thr_init.lo \ thr_mutex.lo mulalloc.lo string.lo \ default.lo default_modify.lo \ diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 13847c324e1..4963d7fc978 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -93,6 +93,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, thd->current_stmt= stmt; thd->store_globals(); // Fix if more than one connect + lex_start(thd); /* We have to call free_old_query before we start to fill mysql->fields for new query. In the case of embedded server we collect field data @@ -580,6 +581,7 @@ void *create_embedded_thd(int client_flag) fprintf(stderr,"store_globals failed.\n"); goto err; } + lex_start(thd); /* TODO - add init_connect command execution */ diff --git a/mysql-test/extra/binlog_tests/database.test b/mysql-test/extra/binlog_tests/database.test new file mode 100644 index 00000000000..11a8f53a6d7 --- /dev/null +++ b/mysql-test/extra/binlog_tests/database.test @@ -0,0 +1,15 @@ +source include/have_log_bin.inc; +source include/not_embedded.inc; + +# Checking that the drop of a database does not replicate anything in +# addition to the drop of the database + +reset master; +create database testing_1; +use testing_1; +create table t1 (a int); +create function sf1 (a int) returns int return a+1; +create trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a); +create procedure sp1 (a int) insert into t1 values(a); +drop database testing_1; +source include/show_binlog_events.inc; diff --git a/mysql-test/extra/rpl_tests/rpl_foreign_key.test b/mysql-test/extra/rpl_tests/rpl_foreign_key.test index 583f2d85554..8755bf5aa87 100644 --- a/mysql-test/extra/rpl_tests/rpl_foreign_key.test +++ b/mysql-test/extra/rpl_tests/rpl_foreign_key.test @@ -32,3 +32,34 @@ SET FOREIGN_KEY_CHECKS=0; DROP TABLE IF EXISTS t1,t2,t3; SET FOREIGN_KEY_CHECKS=1; sync_slave_with_master; + +# +# Bug #32468 delete rows event on a table with foreign key constraint fails +# + +connection master; + +eval create table t1 (b int primary key) engine = $engine_type; +eval create table t2 (a int primary key, b int, foreign key (b) references t1(b)) + engine = $engine_type; + +insert into t1 set b=1; +insert into t2 set a=1, b=1; + +set foreign_key_checks=0; +set @@session.binlog_format=row; +delete from t1; + +--echo must sync w/o a problem (could not with the buggy code) +sync_slave_with_master; +select count(*) from t1 /* must be zero */; + + +# cleanup for bug#32468 + +connection master; +drop table t2,t1; + +sync_slave_with_master; + + diff --git a/mysql-test/extra/rpl_tests/rpl_row_basic.test b/mysql-test/extra/rpl_tests/rpl_row_basic.test index c35a53f15bc..48ddbaf244a 100644 --- a/mysql-test/extra/rpl_tests/rpl_row_basic.test +++ b/mysql-test/extra/rpl_tests/rpl_row_basic.test @@ -174,11 +174,18 @@ sync_slave_with_master; INSERT INTO t7 VALUES (1,3), (2,6), (3,9); SELECT * FROM t7 ORDER BY C1; +# since bug#31552/31609 idempotency is not default any longer. In order +# the preceeding test INSERT INTO t7 to pass the mode is switched +# temprorarily +set @@global.slave_exec_mode= 'IDEMPOTENT'; + connection master; --echo --- on master: new values inserted --- INSERT INTO t7 VALUES (1,2), (2,4), (3,6); SELECT * FROM t7 ORDER BY C1; sync_slave_with_master; + +set @@global.slave_exec_mode= default; --echo --- on slave: old values should be overwritten by replicated values --- SELECT * FROM t7 ORDER BY C1; @@ -206,12 +213,19 @@ SELECT * FROM t8 ORDER BY a; INSERT INTO t8 VALUES (1,2,3), (2,4,6), (3,6,9); SELECT * FROM t8 ORDER BY a; +# since bug#31552/31609 idempotency is not default any longer. In order +# the preceeding test INSERT INTO t8 to pass the mode is switched +# temprorarily +set @@global.slave_exec_mode= 'IDEMPOTENT'; + connection master; --echo --- on master --- # We insert a row that will cause conflict on the primary key but not # on the other keys. INSERT INTO t8 VALUES (2,4,8); sync_slave_with_master; +set @@global.slave_exec_mode= default; + --echo --- on slave --- SELECT * FROM t8 ORDER BY a; @@ -234,12 +248,17 @@ connection master; INSERT INTO t1 VALUES ('K','K'), ('L','L'), ('M','M'); --echo **** On Master **** sync_slave_with_master; +# since bug#31552/31609 idempotency is not default any longer. In order +# the following test DELETE FROM t1 to pass the mode is switched +# temprorarily +set @@global.slave_exec_mode= 'IDEMPOTENT'; DELETE FROM t1 WHERE C1 = 'L'; connection master; DELETE FROM t1; query_vertical SELECT COUNT(*) FROM t1 ORDER BY c1,c2; sync_slave_with_master; +set @@global.slave_exec_mode= default; let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1); disable_query_log; eval SELECT "$last_error" AS Last_SQL_Error; diff --git a/mysql-test/extra/rpl_tests/rpl_row_tabledefs.test b/mysql-test/extra/rpl_tests/rpl_row_tabledefs.test index 23ac16d24ae..1a6c59d0b83 100644 --- a/mysql-test/extra/rpl_tests/rpl_row_tabledefs.test +++ b/mysql-test/extra/rpl_tests/rpl_row_tabledefs.test @@ -69,6 +69,11 @@ ALTER TABLE t8 ADD e1 INT NOT NULL DEFAULT 0, ADD e2 INT NOT NULL DEFAULT 0, # Insert some values for tables on slave side. These should not be # modified when the row from the master is applied. +# since bug#31552/31609 idempotency is not default any longer. In order +# the following INSERTs to pass the mode is switched temprorarily +set @@global.slave_exec_mode= 'IDEMPOTENT'; + +# so the inserts are going to be overriden INSERT INTO t1_int VALUES (2, 4, 4711); INSERT INTO t1_char VALUES (2, 4, 'Foo is a bar'); INSERT INTO t1_bit VALUES (2, 4, b'101', b'11100', b'01'); @@ -86,6 +91,8 @@ SELECT * FROM t1_bit ORDER BY a; SELECT * FROM t1_char ORDER BY a; --echo **** On Slave **** sync_slave_with_master; +set @@global.slave_exec_mode= default; + SELECT a,b,x FROM t1_int ORDER BY a; SELECT a,b,HEX(x),HEX(y),HEX(z) FROM t1_bit ORDER BY a; SELECT a,b,x FROM t1_char ORDER BY a; diff --git a/mysql-test/include/gis_keys.inc b/mysql-test/include/gis_keys.inc index 295e0c48234..c75311f062a 100644 --- a/mysql-test/include/gis_keys.inc +++ b/mysql-test/include/gis_keys.inc @@ -13,20 +13,20 @@ CREATE TABLE t2 (p POINT, INDEX(p)); INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)')); INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)')); --- no index, returns 1 as expected +# no index, returns 1 as expected SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)'); --- with index, returns 1 as expected --- EXPLAIN shows that the index is not used though --- due to the "most rows covered anyway, so a scan is more effective" rule +# with index, returns 1 as expected +# EXPLAIN shows that the index is not used though +# due to the "most rows covered anyway, so a scan is more effective" rule EXPLAIN SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)'); --- adding another row to the table so that --- the "most rows covered" rule doesn't kick in anymore --- now EXPLAIN shows the index used on the table --- and we're getting the wrong result again +# adding another row to the table so that +# the "most rows covered" rule doesn't kick in anymore +# now EXPLAIN shows the index used on the table +# and we're getting the wrong result again INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)')); INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)')); EXPLAIN diff --git a/mysql-test/include/mix1.inc b/mysql-test/include/mix1.inc index d55b404621d..7998baa6ccf 100644 --- a/mysql-test/include/mix1.inc +++ b/mysql-test/include/mix1.inc @@ -1212,7 +1212,7 @@ CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(256)) ENGINE = $engine_type; INSERT INTO t1 VALUES (1,2); ---#echo 1. test for locking: +--echo # 1. test for locking: BEGIN; --enable_info diff --git a/mysql-test/include/partition_1.inc b/mysql-test/include/partition_1.inc deleted file mode 100644 index b0094db2efe..00000000000 --- a/mysql-test/include/partition_1.inc +++ /dev/null @@ -1,750 +0,0 @@ --- source include/have_partition.inc - -# include/partition_1.inc -# -# Partitionong tests -# -# Attention: The variable -# $engine -- Storage engine to be tested. -# must be set within the script sourcing this file. -# ---disable_abort_on_error -SET AUTOCOMMIT= 1; - -##### Disabled testcases, because of open bugs ##### ---echo ---echo #------------------------------------------------------------------------ ---echo # There are several testcases disabled because ouf the open bugs ---echo # #15407 , #15408 , #15890 , #15961 , #13447 , #15966 , #15968, #16370 ---echo #------------------------------------------------------------------------ -# Bug#15407 Partitions: crash if subpartition -let $fixed_bug15407= 0; -# Bug#15408 Partitions: subpartition names are not unique -let $fixed_bug15408= 0; -# Bug#15890 Partitions: Strange interpretation of partition number -let $fixed_bug15890= 0; -# Bug#15961 Partitions: Creation of subpart. table without subpart. rule not rejected -let $fixed_bug15961= 0; -# Bug#13447 Partitions: crash with alter table -let $fixed_bug13447= 0; -# Bug#15966 Partitions: crash if session default engine <> engine used in create table -let $fixed_bug15966= 0; -# Bug#15968 Partitions: crash when INSERT with f1 = -1 into PARTITION BY HASH(f1) -let $fixed_bug15968= 0; -# Bug #16370 Partitions: subpartitions names not mentioned in SHOW CREATE TABLE output -let $fixed_bug16370= 0; - -##### Option, for displaying files ##### -# -# Attention: Displaying the directory content via "ls $MYSQLTEST_VARDIR/master-data/test/t*" -# is probably not portable. -# let $ls= 0; disables the execution of "ls ....." -let $ls= 0; - -################################################################################ -# Partitioning syntax -# -# CREATE TABLE .... (column-list ..) -# PARTITION BY -# KEY '(' ( column-list ) ')' -# | RANGE '(' ( expr ) ')' -# | LIST '(' ( expr ) ')' -# | HASH '(' ( expr ) ')' -# [PARTITIONS num ] -# [SUBPARTITION BY -# KEY '(' ( column-list ) ')' -# | HASH '(' ( expr ) ')' -# [SUBPARTITIONS num ] -# ] -# [ '(' -# ( PARTITION logical-name -# [ VALUES LESS THAN '(' ( expr | MAX_VALUE ) ')' ] -# [ VALUES IN '(' (expr)+ ')' ] -# [ TABLESPACE tablespace-name ] -# [ [ STORAGE ] ENGINE [ '=' ] storage-engine-name ] -# [ NODEGROUP nodegroup-id ] -# [ '(' -# ( SUBPARTITION logical-name -# [ TABLESPACE tablespace-name ] -# [ STORAGE ENGINE = storage-engine-name ] -# [ NODEGROUP nodegroup-id ] -# )+ -# ')' -# )+ -# ')' -# ] -################################################################################ - ---echo ---echo #------------------------------------------------------------------------ ---echo # 0. Setting of auxiliary variables + Creation of an auxiliary table ---echo # needed in all testcases ---echo #------------------------------------------------------------------------ -let $max_row= `SELECT @max_row`; -let $max_row_div2= `SELECT @max_row DIV 2`; -let $max_row_div3= `SELECT @max_row DIV 3`; -let $max_row_div4= `SELECT @max_row DIV 4`; -let $max_int_4= 2147483647; ---disable_warnings -DROP TABLE IF EXISTS t0_template; ---enable_warnings -CREATE TABLE t0_template ( f1 INTEGER, f2 char(20), PRIMARY KEY(f1)) -ENGINE = MEMORY; ---echo # Logging of <max_row> INSERTs into t0_template suppressed ---disable_query_log -let $num= $max_row; -while ($num) -{ - eval INSERT INTO t0_template SET f1 = $num, f2 = '---$num---'; - - dec $num; -} ---enable_query_log - ---echo ---echo #------------------------------------------------------------------------ ---echo # 1. Some syntax checks ---echo #------------------------------------------------------------------------ ---echo # 1.1 Subpartioned table without subpartitioning rule must be rejected ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings -if ($fixed_bug15961) -{ -# Bug#15961 Partitions: Creation of subpart. table without subpart. rule not rejected ---error 9999 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -( PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11)); -} ---echo # FIXME Implement testcases, where it is checked that all create and ---echo # alter table statements ---echo # - with missing mandatory parameters are rejected ---echo # - with optional parameters are accepted ---echo # - with wrong combinations of optional parameters are rejected ---echo # - ............ - ---echo ---echo #------------------------------------------------------------------------ ---echo # 2. Checks where the engine is assigned on all supported (CREATE TABLE ---echo # statement) positions + basic operations on the tables ---echo # Storage engine mixups are currently (2005-12-23) not supported ---echo #------------------------------------------------------------------------ ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings - ---echo # 2.1 non partitioned table (for comparison) -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = $engine; -# MLML Full size (as check of check routine) ---source include/partition_10.inc -DROP TABLE t1; -# ---echo # 2.2 Assignment of storage engine just after column list only -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = $engine - PARTITION BY HASH(f1) PARTITIONS 2; ---source include/partition_10.inc -DROP TABLE t1; -# ---echo # 2.3 Assignment of storage engine just after partition or subpartition ---echo # name only -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY HASH(f1) - ( PARTITION part1 STORAGE ENGINE = $engine, - PARTITION part2 STORAGE ENGINE = $engine - ); ---source include/partition_10.inc -DROP TABLE t1; -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY RANGE(f1) - SUBPARTITION BY HASH(f1) - ( PARTITION part1 VALUES LESS THAN ($max_row_div2) - (SUBPARTITION subpart11 STORAGE ENGINE = $engine, - SUBPARTITION subpart12 STORAGE ENGINE = $engine), - PARTITION part2 VALUES LESS THAN ($max_int_4) - (SUBPARTITION subpart21 STORAGE ENGINE = $engine, - SUBPARTITION subpart22 STORAGE ENGINE = $engine) - ); ---source include/partition_10.inc -DROP TABLE t1; -# ---echo # 2.4 Some but not all named partitions or subpartitions get a storage ---echo # engine assigned -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY HASH(f1) - ( PARTITION part1 STORAGE ENGINE = $engine, - PARTITION part2 - ); ---source include/partition_10.inc -DROP TABLE t1; -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY HASH(f1) - ( PARTITION part1 , - PARTITION part2 STORAGE ENGINE = $engine - ); ---source include/partition_10.inc -DROP TABLE t1; -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY RANGE(f1) - SUBPARTITION BY HASH(f1) - ( PARTITION part1 VALUES LESS THAN ($max_row_div2) - (SUBPARTITION subpart11, - SUBPARTITION subpart12 STORAGE ENGINE = $engine), - PARTITION part2 VALUES LESS THAN ($max_int_4) - (SUBPARTITION subpart21 STORAGE ENGINE = $engine, - SUBPARTITION subpart22 STORAGE ENGINE = $engine) - ); ---source include/partition_10.inc -DROP TABLE t1; -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY RANGE(f1) - SUBPARTITION BY HASH(f1) - ( PARTITION part1 VALUES LESS THAN ($max_row_div2) - (SUBPARTITION subpart11 STORAGE ENGINE = $engine, - SUBPARTITION subpart12 STORAGE ENGINE = $engine), - PARTITION part2 VALUES LESS THAN ($max_int_4) - (SUBPARTITION subpart21, - SUBPARTITION subpart22 ) - ); ---source include/partition_10.inc -DROP TABLE t1; -# ---echo # 2.5 Storage engine assignment after partition name + after name of ---echo # subpartitions belonging to another partition -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY RANGE(f1) - SUBPARTITION BY HASH(f1) - ( PARTITION part1 VALUES LESS THAN ($max_row_div2) ENGINE = $engine - (SUBPARTITION subpart11, - SUBPARTITION subpart12), - PARTITION part2 VALUES LESS THAN ($max_int_4) - (SUBPARTITION subpart21 STORAGE ENGINE = $engine, - SUBPARTITION subpart22 STORAGE ENGINE = $engine) - ); ---source include/partition_10.inc -DROP TABLE t1; -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY RANGE(f1) - SUBPARTITION BY HASH(f1) - ( PARTITION part1 VALUES LESS THAN ($max_row_div2) - (SUBPARTITION subpart11 STORAGE ENGINE = $engine, - SUBPARTITION subpart12 STORAGE ENGINE = $engine), - PARTITION part2 VALUES LESS THAN ($max_int_4) ENGINE = $engine - (SUBPARTITION subpart21, - SUBPARTITION subpart22) - ); ---source include/partition_10.inc -DROP TABLE t1; -# ---echo # 2.6 Precedence of storage engine assignments ---echo # 2.6.1 Storage engine assignment after column list + after partition ---echo # or subpartition name -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = $engine - PARTITION BY HASH(f1) - ( PARTITION part1 STORAGE ENGINE = $engine, - PARTITION part2 STORAGE ENGINE = $engine - ); ---source include/partition_10.inc -DROP TABLE t1; -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = $engine - PARTITION BY RANGE(f1) - SUBPARTITION BY HASH(f1) - ( PARTITION part1 VALUES LESS THAN ($max_row_div2) - (SUBPARTITION subpart11 STORAGE ENGINE = $engine, - SUBPARTITION subpart12 STORAGE ENGINE = $engine), - PARTITION part2 VALUES LESS THAN ($max_int_4) - (SUBPARTITION subpart21 STORAGE ENGINE = $engine, - SUBPARTITION subpart22 STORAGE ENGINE = $engine) - ); ---source include/partition_10.inc -DROP TABLE t1; ---echo # 2.6.2 Storage engine assignment after partition name + after ---echo # subpartition name -# in partition part + in sub partition part -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY RANGE(f1) - SUBPARTITION BY HASH(f1) - ( PARTITION part1 VALUES LESS THAN ($max_row_div2) STORAGE ENGINE = $engine - (SUBPARTITION subpart11 STORAGE ENGINE = $engine, - SUBPARTITION subpart12 STORAGE ENGINE = $engine), - PARTITION part2 VALUES LESS THAN ($max_int_4) - (SUBPARTITION subpart21 STORAGE ENGINE = $engine, - SUBPARTITION subpart22 STORAGE ENGINE = $engine) - ); ---source include/partition_10.inc -DROP TABLE t1; - ---echo # 2.7 Session default engine differs from engine used within create table -eval SET SESSION storage_engine=$engine_other; -if ($fixed_bug15966) -{ -# Bug#15966 Partitions: crash if session default engine <> engine used in create table -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) ( PARTITION part1 ENGINE = $engine); ---source include/partition_10.inc -DROP TABLE t1; -# Bug#15966 Partitions: crash if session default engine <> engine used in create table -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) - PARTITION BY RANGE(f1) - SUBPARTITION BY HASH(f1) - ( PARTITION part1 VALUES LESS THAN (1000) - (SUBPARTITION subpart11 STORAGE ENGINE = $engine, - SUBPARTITION subpart12 STORAGE ENGINE = $engine)); ---source include/partition_10.inc -DROP TABLE t1; -} -eval SET SESSION storage_engine=$engine; - - ---echo ---echo #------------------------------------------------------------------------ ---echo # 3. Check assigning the number of partitions and subpartitions ---echo # with and without named partitions/subpartitions ---echo #------------------------------------------------------------------------ ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings ---echo # 3.1 (positive) without partition/subpartition number assignment ---echo # 3.1.1 no partition number, no named partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1); ---source include/partition_10.inc -DROP TABLE t1; ---echo # 3.1.2 no partition number, named partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part2); ---source include/partition_10.inc -DROP TABLE t1; -# Attention: Several combinations are impossible -# If subpartitioning exists -# - partitioning algorithm must be RANGE or LIST -# This implies the assignment of named partitions. -# - subpartitioning algorithm must be HASH or KEY ---echo # 3.1.3 variations on no partition/subpartition number, named partitions, ---echo # different subpartitions are/are not named -# -# Partition name -- "properties" -# part1 -- first/non last -# part2 -- non first/non last -# part3 -- non first/ last -# -# Testpattern: -# named subpartitions in -# Partition part1 part2 part3 -# N N N -# N N Y -# N Y N -# N Y Y -# Y N N -# Y N Y -# Y Y N -# Y Y Y ---disable_query_log -let $part0= CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1); -# -eval SET @aux = '(PARTITION part1 VALUES LESS THAN ($max_row_div2),'; -let $part1_N= `SELECT @AUX`; -eval SET @aux = '(PARTITION part1 VALUES LESS THAN ($max_row_div2) -(SUBPARTITION subpart11 , SUBPARTITION subpart12 ),'; -let $part1_Y= `SELECT @AUX`; -# -eval SET @aux = 'PARTITION part2 VALUES LESS THAN ($max_row),'; -let $part2_N= `SELECT @AUX`; -eval SET @aux = 'PARTITION part2 VALUES LESS THAN ($max_row) -(SUBPARTITION subpart21 , SUBPARTITION subpart22 ),'; -let $part2_Y= `SELECT @AUX`; -# -eval SET @aux = 'PARTITION part3 VALUES LESS THAN ($max_int_4))'; -let $part3_N= `SELECT @AUX`; -eval SET @aux = 'PARTITION part3 VALUES LESS THAN ($max_int_4) -(SUBPARTITION subpart31 , SUBPARTITION subpart32 ))'; -let $part3_Y= `SELECT @AUX`; ---enable_query_log - -eval $part0 $part1_N $part2_N $part3_N ; -DROP TABLE t1; -# Bug#15407 Partitions: crash if subpartition -if ($fixed_bug15407) -{ -eval $part0 $part1_N $part2_N $part3_Y ; ---source include/partition_10.inc -DROP TABLE t1; -eval $part0 $part1_N $part2_Y $part3_N ; ---source include/partition_10.inc -DROP TABLE t1; -eval $part0 $part1_N $part2_Y $part3_Y ; ---source include/partition_10.inc -DROP TABLE t1; -eval $part0 $part1_Y $part2_N $part3_N ; ---source include/partition_10.inc -DROP TABLE t1; -eval $part0 $part1_Y $part2_N $part3_Y ; ---source include/partition_10.inc -DROP TABLE t1; -eval $part0 $part1_Y $part2_Y $part3_N ; ---source include/partition_10.inc -DROP TABLE t1; -} -eval $part0 $part1_Y $part2_Y $part3_Y ; ---source include/partition_10.inc -DROP TABLE t1; - ---echo # 3.2 partition/subpartition numbers good and bad values and notations ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings ---echo # 3.2.1 partition/subpartition numbers INTEGER notation -# ML: "positive/negative" is my private judgement. It need no to correspond -# with the server response. -# (positive) number = 2 -let $part_number= 2; ---source include/partition_11.inc -# (positive) special case number = 1 -let $part_number= 1; ---source include/partition_11.inc -# (negative) 0 is non sense -let $part_number= 0; ---source include/partition_11.inc -# (negative) -1 is non sense -let $part_number= -1; ---source include/partition_11.inc -# (negative) 1000000 is too huge -let $part_number= 1000000; ---source include/partition_11.inc - -if ($fixed_bug15890) -{ ---echo # 3.2.2 partition/subpartition numbers DECIMAL notation -# (positive) number = 2.0 -let $part_number= 2.0; ---source include/partition_11.inc -# (negative) -2.0 is non sense -let $part_number= -2.0; ---source include/partition_11.inc -# (negative) case number = 0.0 is non sense -let $part_number= 0.0; ---source include/partition_11.inc -# Bug#15890 Partitions: Strange interpretation of partition number -# (negative) number = 1.5 is non sense -let $part_number= 1.5; ---source include/partition_11.inc -# (negative) number is too huge -let $part_number= 999999999999999999999999999999.999999999999999999999999999999; ---source include/partition_11.inc -# (negative) number is nearly zero -let $part_number= 0.000000000000000000000000000001; ---source include/partition_11.inc - ---echo # 3.2.3 partition/subpartition numbers FLOAT notation -##### FLOAT notation -# (positive) number = 2.0E+0 -let $part_number= 2.0E+0; ---source include/partition_11.inc -# Bug#15890 Partitions: Strange interpretation of partition number -# (positive) number = 0.2E+1 -let $part_number= 0.2E+1; ---source include/partition_11.inc -# (negative) -2.0E+0 is non sense -let $part_number= -2.0E+0; ---source include/partition_11.inc -# (negative) 0.15E+1 is non sense -let $part_number= 0.15E+1; ---source include/partition_11.inc -# (negative) 0.0E+300 is zero -let $part_number= 0.0E+300; ---source include/partition_11.inc -# Bug#15890 Partitions: Strange interpretation of partition number -# (negative) 1E+300 is too huge -let $part_number= 1E+300; ---source include/partition_11.inc -# (negative) 1E-300 is nearly zero -let $part_number= 1E-300; ---source include/partition_11.inc -} - ---echo # 3.2.4 partition/subpartition numbers STRING notation -##### STRING notation -# (negative?) case number = '2' -let $part_number= '2'; ---source include/partition_11.inc -# (negative?) case number = '2.0' -let $part_number= '2.0'; ---source include/partition_11.inc -# (negative?) case number = '0.2E+1' -let $part_number= '0.2E+1'; ---source include/partition_11.inc -# (negative) Strings starts with digit, but 'A' follows -let $part_number= '2A'; ---source include/partition_11.inc -# (negative) Strings starts with 'A', but digit follows -let $part_number= 'A2'; ---source include/partition_11.inc -# (negative) empty string -let $part_number= ''; ---source include/partition_11.inc -# (negative) string without any digits -let $part_number= 'GARBAGE'; ---source include/partition_11.inc - ---echo # 3.2.5 partition/subpartition numbers other notations -# (negative) Strings starts with digit, but 'A' follows -let $part_number= 2A; ---source include/partition_11.inc -# (negative) Strings starts with 'A', but digit follows -let $part_number= A2; ---source include/partition_11.inc -# (negative) string without any digits -let $part_number= GARBAGE; ---source include/partition_11.inc - -# (negative?) double quotes -let $part_number= "2"; ---source include/partition_11.inc -# (negative) Strings starts with digit, but 'A' follows -let $part_number= "2A"; ---source include/partition_11.inc -# (negative) Strings starts with 'A', but digit follows -let $part_number= "A2"; ---source include/partition_11.inc -# (negative) string without any digits -let $part_number= "GARBAGE"; ---source include/partition_11.inc - ---echo # 3.3 Mixups of assigned partition/subpartition numbers and names ---echo # 3.3.1 (positive) number of partition/subpartition ---echo # = number of named partition/subpartition -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2 ( PARTITION part1, PARTITION part2 ) ; -SHOW CREATE TABLE t1; -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) PARTITIONS 2 -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) - (SUBPARTITION subpart11, SUBPARTITION subpart12), - PARTITION part2 VALUES LESS THAN (2147483647) - (SUBPARTITION subpart21, SUBPARTITION subpart22) -); ---source include/partition_layout.inc -DROP TABLE t1; ---echo # 3.3.2 (positive) number of partition/subpartition , ---echo # 0 (= no) named partition/subpartition ---echo # already checked above ---echo # 3.3.3 (negative) number of partitions/subpartitions ---echo # > number of named partitions/subpartitions ---error 1064 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2 ( PARTITION part1 ) ; -# Wrong number of named subpartitions in first partition ---error 1064 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) - (SUBPARTITION subpart11 ), - PARTITION part2 VALUES LESS THAN (2147483647) - (SUBPARTITION subpart21, SUBPARTITION subpart22) -); -# Wrong number of named subpartitions in non first/non last partition ---error 1064 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) - (SUBPARTITION subpart11, SUBPARTITION subpart12), - PARTITION part2 VALUES LESS THAN (2000) - (SUBPARTITION subpart21 ), - PARTITION part3 VALUES LESS THAN (2147483647) - (SUBPARTITION subpart31, SUBPARTITION subpart32) -); -# Wrong number of named subpartitions in last partition ---error 1064 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) PARTITIONS 2 -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) - (SUBPARTITION subpart11, SUBPARTITION subpart12), - PARTITION part2 VALUES LESS THAN (2147483647) - (SUBPARTITION subpart21 ) -); ---echo # 3.3.4 (negative) number of partitions < number of named partitions ---error 1064 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 1 ( PARTITION part1, PARTITION part2 ) ; -# Wrong number of named subpartitions in first partition ---error 1064 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 1 -( PARTITION part1 VALUES LESS THAN (1000) - (SUBPARTITION subpart11, SUBPARTITION subpart12), - PARTITION part2 VALUES LESS THAN (2147483647) - (SUBPARTITION subpart21, SUBPARTITION subpart22) -); -# Wrong number of named subpartitions in non first/non last partition ---error 1064 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 1 -( PARTITION part1 VALUES LESS THAN (1000) - (SUBPARTITION subpart11, SUBPARTITION subpart12), - PARTITION part2 VALUES LESS THAN (2000) - (SUBPARTITION subpart21 ), - PARTITION part3 VALUES LESS THAN (2147483647) - (SUBPARTITION subpart31, SUBPARTITION subpart32) -); -# Wrong number of named subpartitions in last partition ---error 1064 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 1 -( PARTITION part1 VALUES LESS THAN (1000) - (SUBPARTITION subpart11, SUBPARTITION subpart12), - PARTITION part2 VALUES LESS THAN (2147483647) - (SUBPARTITION subpart21, SUBPARTITION subpart22) -); - - ---echo ---echo #------------------------------------------------------------------------ ---echo # 4. Checks of logical partition/subpartition name ---echo # file name clashes during CREATE TABLE ---echo #------------------------------------------------------------------------ ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings - ---echo # 4.1 (negative) A partition name used more than once ---error ER_SAME_NAME_PARTITION -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part1); -# -if ($fixed_bug15408) -{ -# Bug#15408 Partitions: subpartition names are not unique ---error ER_SAME_NAME_PARTITION -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (1000) - (SUBPARTITION subpart11, SUBPARTITION subpart11) -); -} ---echo # FIXME Implement testcases with filename problems ---echo # existing file of other table --- partition/subpartition file name ---echo # partition/subpartition file name --- file of the same table - ---echo ---echo #------------------------------------------------------------------------ ---echo # 5. Alter table experiments ---echo #------------------------------------------------------------------------ ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings ---echo # 5.1 alter table add partition ---echo # 5.1.1 (negative) add partition to non partitioned table -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)); ---source include/partition_layout.inc -# MyISAM gets ER_PARTITION_MGMT_ON_NONPARTITIONED and NDB 1005 -# The error code of NDB differs, because all NDB tables are partitioned even -# if the CREATE TABLE does not contain a partitioning clause. ---error ER_PARTITION_MGMT_ON_NONPARTITIONED,1005 -ALTER TABLE t1 ADD PARTITION (PARTITION part1); ---source include/partition_layout.inc -DROP TABLE t1; - ---echo # 5.1.2 Add one partition to a table with one partition -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1); ---source include/partition_layout.inc -eval INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND $max_row_div2 - 1; ---disable_query_log -eval SELECT $engine = 'NDB' INTO @aux; -let $my_exit= `SELECT @aux`; -if ($my_exit) -{ - exit; -} ---enable_query_log -ALTER TABLE t1 ADD PARTITION (PARTITION part1); ---source include/partition_12.inc -DROP TABLE t1; - ---echo # 5.1.3 Several times add one partition to a table with some partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part3); ---source include/partition_layout.inc -eval INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND $max_row_div2 - 1; -# Partition name before first existing partition name -ALTER TABLE t1 ADD PARTITION (PARTITION part0); ---source include/partition_12.inc -DELETE FROM t1; -eval INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND $max_row_div2 - 1; -# Partition name between existing partition names -ALTER TABLE t1 ADD PARTITION (PARTITION part2); ---source include/partition_12.inc -DELETE FROM t1; -eval INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND $max_row_div2 - 1; -if ($fixed_bug13447) -{ -# Partition name after all existing partition names -# Bug#13447 Partitions: crash with alter table -ALTER TABLE t1 ADD PARTITION (PARTITION part4); -} ---source include/partition_12.inc -DROP TABLE t1; - ---echo # 5.1.4 Add several partitions to a table with some partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part3); ---source include/partition_layout.inc -eval INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND $max_row_div2 - 1; -if ($fixed_bug13447) -{ -# Bug#13447 Partitions: crash with alter table -ALTER TABLE t1 ADD PARTITION (PARTITION part0, PARTITION part2, PARTITION part4); -} ---source include/partition_12.inc -DROP TABLE t1; - ---echo # 5.1.5 (negative) Add partitions to a table with some partitions ---echo # clash on new and already existing partition names -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part2, PARTITION part3); -# Clash on first/non last partition name ---error ER_SAME_NAME_PARTITION -ALTER TABLE t1 ADD PARTITION (PARTITION part1); -# Clash on non first/non last partition name ---error ER_SAME_NAME_PARTITION -ALTER TABLE t1 ADD PARTITION (PARTITION part2); -# Clash on non first/last partition name ---error ER_SAME_NAME_PARTITION -ALTER TABLE t1 ADD PARTITION (PARTITION part3); -# Clash on all partition names ---error ER_SAME_NAME_PARTITION -ALTER TABLE t1 ADD PARTITION (PARTITION part1, PARTITION part2, PARTITION part3); -DROP TABLE t1; - -# FIXME Is there any way to add a subpartition to an already existing partition - ---echo # 5.2 alter table add subpartition ---echo # 5.2.1 Add one subpartition to a table with subpartitioning rule and ---echo # no explicit defined subpartitions -eval CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -(PARTITION part1 VALUES LESS THAN ($max_row_div2)); -if ($fixed_bug16370) -{ ---source include/partition_layout.inc -} -eval INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND $max_row_div2 - 1; -eval ALTER TABLE t1 ADD PARTITION (PARTITION part2 VALUES LESS THAN ($max_int_4) - (SUBPARTITION subpart21)); -if ($fixed_bug16370) -{ ---source include/partition_12.inc -} -DROP TABLE t1; -DROP TABLE if exists t0_template; diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl index 90e72a2cb94..d345740c5c2 100644 --- a/mysql-test/lib/mtr_report.pl +++ b/mysql-test/lib/mtr_report.pl @@ -346,11 +346,19 @@ sub mtr_report_stats ($) { # BUG#29807 - innodb_mysql.test: Cannot find table test/t2 # from the internal data dictionary - /Cannot find table test\/bug29807 from the internal data dictionary/ or + /Cannot find or open table test\/bug29807 from/ or # BUG#29839 - lowercase_table3.test: Cannot find table test/T1 # from the internal data dictiona - /Cannot find table test\/BUG29839 from the internal data dictionary/ + /Cannot find table test\/BUG29839 from the internal data dictionary/ or + + # rpl_extrColmaster_*.test, the slave thread produces warnings + # when it get updates to a table that has more columns on the + # master + /Slave: Unknown column 'c7' in 't15' Error_code: 1054/ or + /Slave: Can't DROP 'c7'.* 1091/ or + /Slave: Key column 'c6'.* 1072/ + ) { next; # Skip these lines diff --git a/mysql-test/r/almost_full.result b/mysql-test/r/almost_full.result new file mode 100644 index 00000000000..eb28f12fa51 --- /dev/null +++ b/mysql-test/r/almost_full.result @@ -0,0 +1,29 @@ +drop table if exists t1; +set global myisam_data_pointer_size=2; +CREATE TABLE t1 (a int auto_increment primary key not null, b longtext) ENGINE=MyISAM; +DELETE FROM t1 WHERE a=1 or a=5; +INSERT INTO t1 SET b=repeat('a',600); +ERROR HY000: The table 't1' is full +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check warning Datafile is almost full, 65448 of 65534 used +test.t1 check status OK +UPDATE t1 SET b=repeat('a', 800) where a=10; +ERROR HY000: The table 't1' is full +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check warning Datafile is almost full, 65448 of 65534 used +test.t1 check status OK +INSERT INTO t1 SET b=repeat('a',400); +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check warning Datafile is almost full, 65448 of 65534 used +test.t1 check status OK +DELETE FROM t1 WHERE a=2 or a=6; +UPDATE t1 SET b=repeat('a', 600) where a=11; +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check warning Datafile is almost full, 65448 of 65534 used +test.t1 check status OK +drop table t1; +set global myisam_data_pointer_size=default; diff --git a/mysql-test/r/archive.result b/mysql-test/r/archive.result index 0a473a16771..77d3cba63d5 100644 --- a/mysql-test/r/archive.result +++ b/mysql-test/r/archive.result @@ -12683,3 +12683,7 @@ check table t1 extended; Table Op Msg_type Msg_text test.t1 check status OK drop table t1; +CREATE TABLE t1(a VARCHAR(510)) ENGINE = ARCHIVE; +INSERT INTO t1(a) VALUES (''); +SELECT * FROM t1 ORDER BY a; +DROP TABLE t1; diff --git a/mysql-test/r/bigint.result b/mysql-test/r/bigint.result index 0d6cf8e7d30..4a5b8fcf4aa 100644 --- a/mysql-test/r/bigint.result +++ b/mysql-test/r/bigint.result @@ -170,6 +170,12 @@ t2.value64=t1.value64; value64 value32 value64 value32 9223372036854775807 2 9223372036854775807 4 drop table t1, t2; +create table t1 (sint64 bigint not null); +insert into t1 values (-9223372036854775808); +select * from t1; +sint64 +-9223372036854775808 +drop table t1; create table t1 select 1 as 'a'; show create table t1; Table Create Table diff --git a/mysql-test/r/binlog_unsafe.result b/mysql-test/r/binlog_unsafe.result index 281bb475944..47284ed8bc3 100644 --- a/mysql-test/r/binlog_unsafe.result +++ b/mysql-test/r/binlog_unsafe.result @@ -5,9 +5,9 @@ CREATE TABLE t3 (b INT AUTO_INCREMENT PRIMARY KEY); CREATE VIEW v1(a,b) AS SELECT a,b FROM t2,t3; INSERT INTO t1 SELECT UUID(); Warnings: -Warning 1591 Statement is not safe to log in statement format. +Warning 1592 Statement is not safe to log in statement format. SHOW WARNINGS; Level Warning -Code 1591 +Code 1592 Message Statement is not safe to log in statement format. DROP TABLE t1,t2,t3; diff --git a/mysql-test/r/cast.result b/mysql-test/r/cast.result index afd0a5a990e..c1af92c5f8d 100644 --- a/mysql-test/r/cast.result +++ b/mysql-test/r/cast.result @@ -414,4 +414,28 @@ NULL NULL 20070719 drop table t1; +CREATE TABLE t1 (f1 DATE); +INSERT INTO t1 VALUES ('2007-07-19'), (NULL); +SELECT HOUR(f1), +MINUTE(f1), +SECOND(f1) FROM t1; +HOUR(f1) MINUTE(f1) SECOND(f1) +0 0 0 +NULL NULL NULL +SELECT HOUR(CAST('2007-07-19' AS DATE)), +MINUTE(CAST('2007-07-19' AS DATE)), +SECOND(CAST('2007-07-19' AS DATE)); +HOUR(CAST('2007-07-19' AS DATE)) MINUTE(CAST('2007-07-19' AS DATE)) SECOND(CAST('2007-07-19' AS DATE)) +0 0 0 +SELECT HOUR(CAST(NULL AS DATE)), +MINUTE(CAST(NULL AS DATE)), +SECOND(CAST(NULL AS DATE)); +HOUR(CAST(NULL AS DATE)) MINUTE(CAST(NULL AS DATE)) SECOND(CAST(NULL AS DATE)) +NULL NULL NULL +SELECT HOUR(NULL), +MINUTE(NULL), +SECOND(NULL); +HOUR(NULL) MINUTE(NULL) SECOND(NULL) +NULL NULL NULL +DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 6c7372b7116..991c3bb82de 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -811,6 +811,12 @@ quote(name) ???????? ???????????????? drop table bug20536; +CREATE TABLE t1(a TEXT CHARSET ucs2 COLLATE ucs2_unicode_ci); +INSERT INTO t1 VALUES('abcd'); +SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abcd' IN BOOLEAN MODE); +a +abcd +DROP TABLE t1; End of 4.1 tests CREATE TABLE t1 (a varchar(64) character set ucs2, b decimal(10,3)); INSERT INTO t1 VALUES ("1.1", 0), ("2.1", 0); diff --git a/mysql-test/r/events_bugs.result b/mysql-test/r/events_bugs.result index b6b77101874..83609856393 100644 --- a/mysql-test/r/events_bugs.result +++ b/mysql-test/r/events_bugs.result @@ -31,7 +31,7 @@ create event e_55 on schedule at 10000101000000 do drop table t; ERROR HY000: Incorrect AT value: '10000101000000' create event e_55 on schedule at 20000101000000 do drop table t; Warnings: -Note 1587 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. +Note 1588 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. show events; Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation create event e_55 on schedule at 20200101000000 starts 10000101000000 do drop table t; @@ -457,22 +457,22 @@ CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00' DO SELECT 1; Warnings: -Note 1587 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. +Note 1588 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00' ENDS '1999-01-02 00:00:00' DISABLE DO SELECT 1; Warnings: -Note 1587 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. +Note 1588 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. CREATE EVENT e4 ON SCHEDULE AT '1999-01-01 00:00:00' DO SELECT 1; Warnings: -Note 1587 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. +Note 1588 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. CREATE EVENT e4 ON SCHEDULE AT '1999-01-01 00:00:00' DISABLE DO SELECT 1; Warnings: -Note 1587 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. +Note 1588 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation. SHOW EVENTS; Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci @@ -482,19 +482,19 @@ The following should succeed giving a warning. ALTER EVENT e1 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00' ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE; Warnings: -Note 1543 Event execution time is in the past. Event has been disabled +Note 1544 Event execution time is in the past. Event has been disabled CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00' ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE DO SELECT 1; Warnings: -Note 1543 Event execution time is in the past. Event has been disabled +Note 1544 Event execution time is in the past. Event has been disabled CREATE EVENT e5 ON SCHEDULE AT '1999-01-01 00:00:00' ON COMPLETION PRESERVE DO SELECT 1; Warnings: -Note 1543 Event execution time is in the past. Event has been disabled +Note 1544 Event execution time is in the past. Event has been disabled The following should succeed without warnings. ALTER EVENT e2 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'; ALTER EVENT e3 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00' diff --git a/mysql-test/r/events_trans.result b/mysql-test/r/events_trans.result index 984e22a2c1a..16ec64b4c50 100644 --- a/mysql-test/r/events_trans.result +++ b/mysql-test/r/events_trans.result @@ -63,7 +63,7 @@ begin work; insert into t1 (a) values ("OK: create event if not exists"); create event if not exists e1 on schedule every 2 day do select 2; Warnings: -Note 1536 Event 'e1' already exists +Note 1537 Event 'e1' already exists rollback work; select * from t1; a diff --git a/mysql-test/r/federated_server.result b/mysql-test/r/federated_server.result index 0905aabb075..32717b4f0e3 100644 --- a/mysql-test/r/federated_server.result +++ b/mysql-test/r/federated_server.result @@ -253,6 +253,14 @@ drop user guest_usage@localhost; drop user guest_select@localhost; drop table federated.t1; drop server 's1'; +create server 's1' foreign data wrapper 'mysql' options (port 3306); +alter server 's1' options +(host 'localhost', database '', user '', +password '', socket '', owner '', port 3306); +alter server 's1' options +(host 'localhost', database 'database1', user '', +password '', socket '', owner '', port 3306); +drop server 's1'; # End of 5.1 tests use test; create procedure p1 () @@ -262,7 +270,7 @@ DECLARE e INT DEFAULT 0; DECLARE i INT; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET e = e + 1; SET i = sleep(5); -WHILE v < 20000 do +WHILE v < 10000 do CREATE SERVER s FOREIGN DATA WRAPPER mysql OPTIONS (USER 'Remote', HOST '192.168.1.106', DATABASE 'test'); diff --git a/mysql-test/r/fulltext.result b/mysql-test/r/fulltext.result index 96ebb9bf254..c3fa427127b 100644 --- a/mysql-test/r/fulltext.result +++ b/mysql-test/r/fulltext.result @@ -476,6 +476,12 @@ ALTER TABLE t1 DISABLE KEYS; SELECT * FROM t1 WHERE MATCH(a) AGAINST('test'); ERROR HY000: Can't find FULLTEXT index matching the column list DROP TABLE t1; +CREATE TABLE t1(a TEXT); +INSERT INTO t1 VALUES(' aaaaa aaaa'); +SELECT * FROM t1 WHERE MATCH(a) AGAINST ('"aaaa"' IN BOOLEAN MODE); +a + aaaaa aaaa +DROP TABLE t1; CREATE TABLE t1(a VARCHAR(20), FULLTEXT(a)); INSERT INTO t1 VALUES('Offside'),('City Of God'); SELECT a FROM t1 WHERE MATCH a AGAINST ('+city of*' IN BOOLEAN MODE); diff --git a/mysql-test/r/func_gconcat.result b/mysql-test/r/func_gconcat.result index 7ae7806baea..d257e526abf 100644 --- a/mysql-test/r/func_gconcat.result +++ b/mysql-test/r/func_gconcat.result @@ -867,4 +867,13 @@ select group_concat(distinct a, c order by a desc, c desc) from t1; group_concat(distinct a, c order by a desc, c desc) 31,11,10,01,00 drop table t1; +create table t1 (f1 char(20)); +insert into t1 values (''),(''); +select group_concat(distinct f1) from t1; +group_concat(distinct f1) + +select group_concat(f1) from t1; +group_concat(f1) +, +drop table t1; End of 5.0 tests diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result index ce29d25b736..abf717091af 100644 --- a/mysql-test/r/func_group.result +++ b/mysql-test/r/func_group.result @@ -1378,4 +1378,24 @@ SELECT 1 FROM t1 GROUP BY (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) ); 1 1 DROP TABLE t1; +CREATE TABLE t1 (a int, b date NOT NULL, KEY k1 (a,b)); +SELECT MIN(b) FROM t1 WHERE a=1 AND b>'2007-08-01'; +MIN(b) +NULL +DROP TABLE t1; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3),(4); +SET SQL_MODE=ONLY_FULL_GROUP_BY; +SELECT a FROM t1 HAVING COUNT(*)>2; +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT COUNT(*), a FROM t1; +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SET SQL_MODE=DEFAULT; +SELECT a FROM t1 HAVING COUNT(*)>2; +a +1 +SELECT COUNT(*), a FROM t1; +COUNT(*) a +4 1 +DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/r/func_str.result b/mysql-test/r/func_str.result index 78d86d3f342..6f6edd5112b 100644 --- a/mysql-test/r/func_str.result +++ b/mysql-test/r/func_str.result @@ -722,9 +722,9 @@ Warning 1265 Data truncated for column 'format(130,10)' at row 1 show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `bin(130)` varchar(64) NOT NULL DEFAULT '', - `oct(130)` varchar(64) NOT NULL DEFAULT '', - `conv(130,16,10)` varchar(64) NOT NULL DEFAULT '', + `bin(130)` varchar(64) DEFAULT NULL, + `oct(130)` varchar(64) DEFAULT NULL, + `conv(130,16,10)` varchar(64) DEFAULT NULL, `hex(130)` varchar(6) NOT NULL DEFAULT '', `char(130)` varbinary(4) NOT NULL DEFAULT '', `format(130,10)` varchar(4) NOT NULL DEFAULT '', @@ -1316,6 +1316,18 @@ id select_type table type possible_keys key key_len ref rows filtered Extra Warnings: Note 1003 select decode('',_latin1'zxcv') AS `enc` from `test`.`t1` drop table t1; +create table t1 (a bigint not null)engine=myisam; +insert into t1 set a = 1024*1024*1024*4; +delete from t1 order by (inet_ntoa(a)) desc limit 10; +drop table t1; +create table t1 (a char(36) not null)engine=myisam; +insert ignore into t1 set a = ' '; +insert ignore into t1 set a = ' '; +select * from t1 order by (oct(a)); +a + + +drop table t1; End of 4.1 tests create table t1 (d decimal default null); insert into t1 values (null); diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result index 4e25ada43a0..4d402d7d0e9 100644 --- a/mysql-test/r/grant.result +++ b/mysql-test/r/grant.result @@ -529,7 +529,7 @@ Db char(64) NO PRI User char(16) NO PRI Table_name char(64) NO PRI Grantor char(77) NO MUL -Timestamp timestamp NO CURRENT_TIMESTAMP +Timestamp timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') NO Column_priv set('Select','Insert','Update','References') NO use test; diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result index 7498267c91d..1472fdfdd7a 100644 --- a/mysql-test/r/group_by.result +++ b/mysql-test/r/group_by.result @@ -1064,6 +1064,71 @@ select t1.f1,t.* from t1, t1 t group by 1; ERROR 42000: 'test.t.f1' isn't in GROUP BY drop table t1; SET SQL_MODE = ''; +CREATE TABLE t1( +id INT AUTO_INCREMENT PRIMARY KEY, +c1 INT NOT NULL, +c2 INT NOT NULL, +UNIQUE KEY (c2,c1)); +INSERT INTO t1(c1,c2) VALUES (5,1), (4,1), (3,5), (2,3), (1,3); +SELECT * FROM t1 ORDER BY c1; +id c1 c2 +5 1 3 +4 2 3 +3 3 5 +2 4 1 +1 5 1 +SELECT * FROM t1 GROUP BY id ORDER BY c1; +id c1 c2 +5 1 3 +4 2 3 +3 3 5 +2 4 1 +1 5 1 +SELECT * FROM t1 GROUP BY id ORDER BY id DESC; +id c1 c2 +5 1 3 +4 2 3 +3 3 5 +2 4 1 +1 5 1 +SELECT * FROM t1 GROUP BY c2 ,c1, id ORDER BY c2, c1; +id c1 c2 +2 4 1 +1 5 1 +5 1 3 +4 2 3 +3 3 5 +SELECT * FROM t1 GROUP BY c2, c1, id ORDER BY c2 DESC, c1; +id c1 c2 +3 3 5 +5 1 3 +4 2 3 +2 4 1 +1 5 1 +SELECT * FROM t1 GROUP BY c2, c1, id ORDER BY c2 DESC, c1 DESC; +id c1 c2 +3 3 5 +4 2 3 +5 1 3 +1 5 1 +2 4 1 +SELECT * FROM t1 GROUP BY c2 ORDER BY c2, c1; +id c1 c2 +1 5 1 +4 2 3 +3 3 5 +SELECT * FROM t1 GROUP BY c2 ORDER BY c2 DESC, c1; +id c1 c2 +3 3 5 +4 2 3 +1 5 1 +SELECT * FROM t1 GROUP BY c2 ORDER BY c2 DESC, c1 DESC; +id c1 c2 +3 3 5 +4 2 3 +1 5 1 +DROP TABLE t1; +End of 5.0 tests CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), KEY i2(a,b)); diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index 7693fe628ef..4df3b56da86 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -1141,11 +1141,13 @@ DROP FUNCTION func2; select column_type, group_concat(table_schema, '.', table_name), count(*) as num from information_schema.columns where table_schema='information_schema' and -(column_type = 'varchar(7)' or column_type = 'varchar(20)') +(column_type = 'varchar(7)' or column_type = 'varchar(20)' + or column_type = 'varchar(27)') group by column_type order by num; column_type group_concat(table_schema, '.', table_name) num +varchar(27) information_schema.COLUMNS 1 varchar(7) information_schema.ROUTINES,information_schema.VIEWS 2 -varchar(20) information_schema.COLUMNS,information_schema.FILES,information_schema.FILES,information_schema.PLUGINS,information_schema.PLUGINS,information_schema.PLUGINS 6 +varchar(20) information_schema.FILES,information_schema.FILES,information_schema.PLUGINS,information_schema.PLUGINS,information_schema.PLUGINS 5 create table t1(f1 char(1) not null, f2 char(9) not null) default character set utf8; select CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH from @@ -1604,4 +1606,9 @@ select * from `information_schema`.`VIEWS` where `TABLE_SCHEMA` = NULL; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION select * from `information_schema`.`VIEWS` where `TABLE_NAME` = NULL; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION +explain extended select 1 from information_schema.tables; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE tables ALL NULL NULL NULL NULL NULL NULL Skip_open_table; Scanned all databases +Warnings: +Note 1003 select 1 AS `1` from `information_schema`.`tables` End of 5.1 tests. diff --git a/mysql-test/r/information_schema_db.result b/mysql-test/r/information_schema_db.result index 51f7694ab68..2da4e305b01 100644 --- a/mysql-test/r/information_schema_db.result +++ b/mysql-test/r/information_schema_db.result @@ -141,7 +141,7 @@ Warnings: Warning 1356 View 'testdb_1.v7' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them show fields from testdb_1.v7; Field Type Null Key Default Extra -f1 null YES NULL +f1 char(4) YES NULL Warnings: Note 1449 There is no 'no_such_user'@'no_such_host' registered create table t3 (f1 char(4), f2 char(4)); @@ -161,7 +161,7 @@ View Create View character_set_client collation_connection v6 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `testdb_1`.`v6` AS select `testdb_1`.`t1`.`f1` AS `f1` from `testdb_1`.`t1` latin1 latin1_swedish_ci show fields from testdb_1.v7; Field Type Null Key Default Extra -f1 null YES NULL +f1 char(4) YES NULL Warnings: Note 1449 There is no 'no_such_user'@'no_such_host' registered show create view testdb_1.v7; @@ -189,7 +189,7 @@ show create view v4; ERROR HY000: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table show fields from v4; Field Type Null Key Default Extra -f1 null YES NULL +f1 char(4) YES NULL f2 char(4) YES NULL show fields from v2; Field Type Null Key Default Extra diff --git a/mysql-test/r/innodb-semi-consistent.result b/mysql-test/r/innodb-semi-consistent.result new file mode 100644 index 00000000000..ad7b70d0497 --- /dev/null +++ b/mysql-test/r/innodb-semi-consistent.result @@ -0,0 +1,36 @@ +set session transaction isolation level read committed; +create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; +insert into t1 values (1),(2),(3),(4),(5),(6),(7); +set autocommit=0; +select * from t1 where a=3 lock in share mode; +a +3 +set session transaction isolation level read committed; +set autocommit=0; +update t1 set a=10 where a=5; +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +commit; +update t1 set a=10 where a=5; +select * from t1 where a=2 for update; +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +select * from t1 where a=2 limit 1 for update; +a +2 +update t1 set a=11 where a=6; +update t1 set a=12 where a=2; +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +update t1 set a=13 where a=1; +ERROR HY000: Lock wait timeout exceeded; try restarting transaction +commit; +update t1 set a=14 where a=1; +commit; +select * from t1; +a +14 +2 +3 +4 +10 +11 +7 +drop table t1; diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index e1cc365f5c3..4379959b60d 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -472,43 +472,6 @@ a b 3 3 drop table t1,t2; CREATE TABLE t1 ( -id int(11) NOT NULL auto_increment, -ggid varchar(32) binary DEFAULT '' NOT NULL, -email varchar(64) DEFAULT '' NOT NULL, -passwd varchar(32) binary DEFAULT '' NOT NULL, -PRIMARY KEY (id), -UNIQUE ggid (ggid) -) ENGINE=innodb; -insert into t1 (ggid,passwd) values ('test1','xxx'); -insert into t1 (ggid,passwd) values ('test2','yyy'); -insert into t1 (ggid,passwd) values ('test2','this will fail'); -ERROR 23000: Duplicate entry 'test2' for key 'ggid' -insert into t1 (ggid,id) values ('this will fail',1); -ERROR 23000: Duplicate entry '1' for key 'PRIMARY' -select * from t1 where ggid='test1'; -id ggid email passwd -1 test1 xxx -select * from t1 where passwd='xxx'; -id ggid email passwd -1 test1 xxx -select * from t1 where id=2; -id ggid email passwd -2 test2 yyy -replace into t1 (ggid,id) values ('this will work',1); -replace into t1 (ggid,passwd) values ('test2','this will work'); -update t1 set id=100,ggid='test2' where id=1; -ERROR 23000: Duplicate entry 'test2' for key 'ggid' -select * from t1; -id ggid email passwd -1 this will work -4 test2 this will work -select * from t1 where id=1; -id ggid email passwd -1 this will work -select * from t1 where id=999; -id ggid email passwd -drop table t1; -CREATE TABLE t1 ( user_name varchar(12), password text, subscribed char(1), @@ -1764,13 +1727,13 @@ Variable_name Value Innodb_page_size 16384 show status like "Innodb_rows_deleted"; Variable_name Value -Innodb_rows_deleted 71 +Innodb_rows_deleted 70 show status like "Innodb_rows_inserted"; Variable_name Value -Innodb_rows_inserted 1085 +Innodb_rows_inserted 1082 show status like "Innodb_rows_updated"; Variable_name Value -Innodb_rows_updated 886 +Innodb_rows_updated 885 show status like "Innodb_row_lock_waits"; Variable_name Value Innodb_row_lock_waits 0 @@ -3202,3 +3165,52 @@ c25 CHAR(255), c26 CHAR(255), c27 CHAR(255), c28 CHAR(255), c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255) ) ENGINE = InnoDB; ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs +DROP TABLE IF EXISTS t1; +Warnings: +Note 1051 Unknown table 't1' +CREATE TABLE t1( +id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY +) ENGINE=InnoDB; +INSERT INTO t1 VALUES(-10); +SELECT * FROM t1; +id +-10 +INSERT INTO t1 VALUES(NULL); +SELECT * FROM t1; +id +-10 +1 +DROP TABLE t1; +SET TX_ISOLATION='read-committed'; +SET AUTOCOMMIT=0; +DROP TABLE IF EXISTS t1, t2; +Warnings: +Note 1051 Unknown table 't1' +Note 1051 Unknown table 't2' +CREATE TABLE t1 ( a int ) ENGINE=InnoDB; +CREATE TABLE t2 LIKE t1; +SELECT * FROM t2; +a +SET TX_ISOLATION='read-committed'; +SET AUTOCOMMIT=0; +INSERT INTO t1 VALUES (1); +COMMIT; +SELECT * FROM t1 WHERE a=1; +a +1 +SET TX_ISOLATION='read-committed'; +SET AUTOCOMMIT=0; +SELECT * FROM t2; +a +SET TX_ISOLATION='read-committed'; +SET AUTOCOMMIT=0; +INSERT INTO t1 VALUES (2); +COMMIT; +SELECT * FROM t1 WHERE a=2; +a +2 +SELECT * FROM t1 WHERE a=2; +a +2 +DROP TABLE t1; +DROP TABLE t2; diff --git a/mysql-test/r/innodb_autoinc_lock_mode_zero.result b/mysql-test/r/innodb_autoinc_lock_mode_zero.result new file mode 100644 index 00000000000..3d016684338 --- /dev/null +++ b/mysql-test/r/innodb_autoinc_lock_mode_zero.result @@ -0,0 +1,39 @@ +drop table if exists t1; +CREATE TABLE t1 ( +id int(11) NOT NULL auto_increment, +ggid varchar(32) binary DEFAULT '' NOT NULL, +email varchar(64) DEFAULT '' NOT NULL, +passwd varchar(32) binary DEFAULT '' NOT NULL, +PRIMARY KEY (id), +UNIQUE ggid (ggid) +) ENGINE=innodb; +insert into t1 (ggid,passwd) values ('test1','xxx'); +insert into t1 (ggid,passwd) values ('test2','yyy'); +insert into t1 (ggid,passwd) values ('test2','this will fail'); +ERROR 23000: Duplicate entry 'test2' for key 'ggid' +insert into t1 (ggid,id) values ('this will fail',1); +ERROR 23000: Duplicate entry '1' for key 'PRIMARY' +select * from t1 where ggid='test1'; +id ggid email passwd +1 test1 xxx +select * from t1 where passwd='xxx'; +id ggid email passwd +1 test1 xxx +select * from t1 where id=2; +id ggid email passwd +2 test2 yyy +replace into t1 (ggid,id) values ('this will work',1); +replace into t1 (ggid,passwd) values ('test2','this will work'); +update t1 set id=100,ggid='test2' where id=1; +ERROR 23000: Duplicate entry 'test2' for key 'ggid' +select * from t1; +id ggid email passwd +1 this will work +3 test2 this will work +select * from t1 where id=1; +id ggid email passwd +1 this will work +select * from t1 where id=999; +id ggid email passwd +drop table t1; +End of tests diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result index 05db4436a65..3f9e9b404f0 100644 --- a/mysql-test/r/innodb_mysql.result +++ b/mysql-test/r/innodb_mysql.result @@ -1460,6 +1460,7 @@ SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(256)) ENGINE = InnoDB; INSERT INTO t1 VALUES (1,2); +# 1. test for locking: BEGIN; UPDATE t1 SET b = 12 WHERE a = 1; affected rows: 1 diff --git a/mysql-test/r/log_state.result b/mysql-test/r/log_state.result index 3a3ef584ce3..b0ec0d25935 100644 --- a/mysql-test/r/log_state.result +++ b/mysql-test/r/log_state.result @@ -175,3 +175,66 @@ SET GLOBAL slow_query_log = ON; SET GLOBAL READ_ONLY = OFF; SET GLOBAL general_log = @old_general_log_state; SET GLOBAL slow_query_log = @old_slow_log_state; +SET @old_general_log_state = @@global.general_log; +SET @old_slow_log_state = @@global.slow_query_log; +SHOW VARIABLES LIKE 'general_log'; +Variable_name Value +general_log ON +SHOW VARIABLES LIKE 'log'; +Variable_name Value +log ON +SELECT @@general_log, @@log; +@@general_log @@log +1 1 +SET GLOBAL log = 0; +SHOW VARIABLES LIKE 'general_log'; +Variable_name Value +general_log OFF +SHOW VARIABLES LIKE 'log'; +Variable_name Value +log OFF +SELECT @@general_log, @@log; +@@general_log @@log +0 0 +SET GLOBAL general_log = 1; +SHOW VARIABLES LIKE 'general_log'; +Variable_name Value +general_log ON +SHOW VARIABLES LIKE 'log'; +Variable_name Value +log ON +SELECT @@general_log, @@log; +@@general_log @@log +1 1 +SHOW VARIABLES LIKE 'slow_query_log'; +Variable_name Value +slow_query_log OFF +SHOW VARIABLES LIKE 'log_slow_queries'; +Variable_name Value +log_slow_queries OFF +SELECT @@slow_query_log, @@log_slow_queries; +@@slow_query_log @@log_slow_queries +0 0 +SET GLOBAL log_slow_queries = 0; +SHOW VARIABLES LIKE 'slow_query_log'; +Variable_name Value +slow_query_log OFF +SHOW VARIABLES LIKE 'log_slow_queries'; +Variable_name Value +log_slow_queries OFF +SELECT @@slow_query_log, @@log_slow_queries; +@@slow_query_log @@log_slow_queries +0 0 +SET GLOBAL slow_query_log = 1; +SHOW VARIABLES LIKE 'slow_query_log'; +Variable_name Value +slow_query_log ON +SHOW VARIABLES LIKE 'log_slow_queries'; +Variable_name Value +log_slow_queries ON +SELECT @@slow_query_log, @@log_slow_queries; +@@slow_query_log @@log_slow_queries +1 1 +SET GLOBAL general_log = @old_general_log_state; +SET GLOBAL slow_query_log = @old_slow_log_state; +End of 5.1 tests diff --git a/mysql-test/r/log_tables.result b/mysql-test/r/log_tables.result index 261e3292f4d..a31f2047670 100644 --- a/mysql-test/r/log_tables.result +++ b/mysql-test/r/log_tables.result @@ -50,7 +50,7 @@ general_log CREATE TABLE `general_log` ( ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log' show fields from mysql.general_log; Field Type Null Key Default Extra -event_time timestamp NO CURRENT_TIMESTAMP +event_time timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP user_host mediumtext NO NULL thread_id int(11) NO NULL server_id int(11) NO NULL @@ -73,7 +73,7 @@ slow_log CREATE TABLE `slow_log` ( ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log' show fields from mysql.slow_log; Field Type Null Key Default Extra -start_time timestamp NO CURRENT_TIMESTAMP +start_time timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP user_host mediumtext NO NULL query_time time NO NULL lock_time time NO NULL @@ -820,3 +820,31 @@ Execute select '000 001 002 003 004 005 006 007 008 009010 011 012 013 014 015 0 Query set global general_log = off deallocate prepare long_query; set global general_log = @old_general_log_state; +SET @old_slow_log_state = @@global.slow_query_log; +SET SESSION long_query_time = 0; +SET GLOBAL slow_query_log = ON; +FLUSH LOGS; +TRUNCATE TABLE mysql.slow_log; +CREATE TABLE t1 (f1 SERIAL,f2 INT, f3 INT, PRIMARY KEY(f1), KEY(f2)); +INSERT INTO t1 VALUES (1,1,1); +INSERT INTO t1 VALUES (2,2,2); +INSERT INTO t1 VALUES (3,3,3); +INSERT INTO t1 VALUES (4,4,4); +SELECT SQL_NO_CACHE 'Bug#31700 - SCAN',f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f3=4; +Bug#31700 - SCAN f1 f2 f3 SLEEP(1.1) +Bug#31700 - SCAN 4 4 4 0 +SELECT SQL_NO_CACHE 'Bug#31700 - KEY', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f2=3; +Bug#31700 - KEY f1 f2 f3 SLEEP(1.1) +Bug#31700 - KEY 3 3 3 0 +SELECT SQL_NO_CACHE 'Bug#31700 - PK', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f1=2; +Bug#31700 - PK f1 f2 f3 SLEEP(1.1) +Bug#31700 - PK 2 2 2 0 +SELECT start_time, rows_examined, rows_sent, sql_text FROM mysql.slow_log WHERE sql_text LIKE '%Bug#31700%' ORDER BY start_time; +start_time rows_examined rows_sent sql_text +TIMESTAMP 4 1 SELECT SQL_NO_CACHE 'Bug#31700 - SCAN',f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f3=4 +TIMESTAMP 1 1 SELECT SQL_NO_CACHE 'Bug#31700 - KEY', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f2=3 +TIMESTAMP 1 1 SELECT SQL_NO_CACHE 'Bug#31700 - PK', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f1=2 +DROP TABLE t1; +TRUNCATE TABLE mysql.slow_log; +SET GLOBAL slow_query_log = @old_slow_log_state; +SET SESSION long_query_time =@old_long_query_time; diff --git a/mysql-test/r/lowercase_view.result b/mysql-test/r/lowercase_view.result index 3653461c6b8..c37dc41c495 100644 --- a/mysql-test/r/lowercase_view.result +++ b/mysql-test/r/lowercase_view.result @@ -119,7 +119,7 @@ create table t1Aa (col1 int); create view v1Aa as select col1 from t1Aa as AaA; show create view v1AA; View Create View character_set_client collation_connection -v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` latin1 latin1_swedish_ci +v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `aaa` latin1 latin1_swedish_ci drop view v1AA; select Aaa.col1 from t1Aa as AaA; col1 @@ -128,6 +128,23 @@ drop view v1AA; create view v1Aa as select AaA.col1 from t1Aa as AaA; show create view v1AA; View Create View character_set_client collation_connection -v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `AaA` latin1 latin1_swedish_ci +v1aa CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1aa` AS select `aaa`.`col1` AS `col1` from `t1aa` `aaa` latin1 latin1_swedish_ci drop view v1AA; drop table t1Aa; +CREATE TABLE t1 (a int, b int); +select X.a from t1 AS X group by X.b having (X.a = 1); +a +select X.a from t1 AS X group by X.b having (x.a = 1); +a +select X.a from t1 AS X group by X.b having (x.b = 1); +a +CREATE OR REPLACE VIEW v1 AS +select X.a from t1 AS X group by X.b having (X.a = 1); +SHOW CREATE VIEW v1; +View Create View character_set_client collation_connection +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `x`.`a` AS `a` from `t1` `x` group by `x`.`b` having (`x`.`a` = 1) latin1 latin1_swedish_ci +SELECT * FROM v1; +a +DROP VIEW v1; +DROP TABLE t1; +End of 5.0 tests. diff --git a/mysql-test/r/metadata.result b/mysql-test/r/metadata.result index 4a776b6a253..76c6ae7d034 100644 --- a/mysql-test/r/metadata.result +++ b/mysql-test/r/metadata.result @@ -21,7 +21,7 @@ def test t1 t1 g g 5 4 0 Y 32768 3 63 def test t1 t1 h h 246 7 0 Y 0 4 63 def test t1 t1 i i 13 4 0 Y 32864 0 63 def test t1 t1 j j 10 10 0 Y 128 0 63 -def test t1 t1 k k 7 19 0 N 1249 0 63 +def test t1 t1 k k 7 19 0 N 9441 0 63 def test t1 t1 l l 12 19 0 Y 128 0 63 def test t1 t1 m m 254 1 0 Y 256 0 8 def test t1 t1 n n 254 3 0 Y 2048 0 8 diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 73661897ee1..3125660643c 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -1794,6 +1794,31 @@ SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1; a 1 DROP TABLE t1; +CREATE TABLE t1 (c1 INT, c2 INT, UNIQUE INDEX (c1), INDEX (c2)) ENGINE=MYISAM; +SHOW TABLE STATUS LIKE 't1'; +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 0 # # # 1024 # # # # # # # +INSERT INTO t1 VALUES (1,1); +SHOW TABLE STATUS LIKE 't1'; +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 # # # 3072 # # # # # # # +ALTER TABLE t1 DISABLE KEYS; +SHOW TABLE STATUS LIKE 't1'; +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 # # # 3072 # # # # # # # +ALTER TABLE t1 ENABLE KEYS; +SHOW TABLE STATUS LIKE 't1'; +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 # # # 3072 # # # # # # # +ALTER TABLE t1 DISABLE KEYS; +SHOW TABLE STATUS LIKE 't1'; +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 # # # 3072 # # # # # # # +ALTER TABLE t1 ENABLE KEYS; +SHOW TABLE STATUS LIKE 't1'; +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 # # # 3072 # # # # # # # +DROP TABLE t1; End of 5.0 tests create table t1 (a int not null, key `a` (a) key_block_size=1024); show create table t1; diff --git a/mysql-test/r/mysql.result b/mysql-test/r/mysql.result index 76018962f79..a4d96c1c243 100644 --- a/mysql-test/r/mysql.result +++ b/mysql-test/r/mysql.result @@ -182,3 +182,10 @@ This is a file starting with UTF8 BOM 0xEFBBBF This is a file starting with UTF8 BOM 0xEFBBBF End of 5.0 tests WARNING: --server-arg option not supported in this configuration. +Warning (Code 1286): Unknown table engine 'nonexistent' +Warning (Code 1266): Using storage engine MyISAM for table 't2' +Warning (Code 1286): Unknown table engine 'nonexistent2' +Warning (Code 1266): Using storage engine MyISAM for table 't2' +Error (Code 1050): Table 't2' already exists +drop tables t1, t2; +End of tests diff --git a/mysql-test/r/mysql_comments.result b/mysql-test/r/mysql_comments.result new file mode 100644 index 00000000000..7f1c0b50c5e --- /dev/null +++ b/mysql-test/r/mysql_comments.result @@ -0,0 +1,62 @@ +drop table if exists t1; +drop function if exists foofct; +drop procedure if exists empty; +drop procedure if exists foosp; +drop procedure if exists nicesp; +drop trigger if exists t1_empty; +drop trigger if exists t1_bi; +"Pass 1 : --disable-comments" +1 +1 +2 +2 +foofct("call 1") +call 1 +Function sql_mode Create Function character_set_client collation_connection Database Collation +foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nreturn\n\n\n\nx latin1 latin1_swedish_ci latin1_swedish_ci +foofct("call 2") +call 2 +Function sql_mode Create Function character_set_client collation_connection Database Collation +foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nbegin\n \n \n \n\n \n\n \n return x;\nend latin1 latin1_swedish_ci latin1_swedish_ci +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +empty CREATE DEFINER=`root`@`localhost` PROCEDURE `empty`()\nbegin\nend latin1 latin1_swedish_ci latin1_swedish_ci +id data +foo 42 +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +foosp CREATE DEFINER=`root`@`localhost` PROCEDURE `foosp`()\ninsert into test.t1\n\n\n\n\n \n\n \n values ("foo", 42) latin1 latin1_swedish_ci latin1_swedish_ci +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +nicesp CREATE DEFINER=`root`@`localhost` PROCEDURE `nicesp`(a int)\nbegin\n \n declare b int;\n declare c float;\n\n \n \n\n \nend latin1 latin1_swedish_ci latin1_swedish_ci +Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation +t1_empty CREATE DEFINER=`root`@`localhost` trigger t1_empty after delete on t1\nfor each row\nbegin\nend latin1 latin1_swedish_ci latin1_swedish_ci +Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation +t1_bi CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert on t1\nfor each row\nbegin\n\n\n\n \n declare b int;\n declare c float;\n\n \n \n\n \n set NEW.data := 12;\nend latin1 latin1_swedish_ci latin1_swedish_ci +id data +trig 12 +"Pass 2 : --enable-comments" +1 +1 +2 +2 +foofct("call 1") +call 1 +Function sql_mode Create Function character_set_client collation_connection Database Collation +foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nreturn\n-- comment 1a\n# comment 1b\n/* comment 1c */\nx # after body, on same line latin1 latin1_swedish_ci latin1_swedish_ci +foofct("call 2") +call 2 +Function sql_mode Create Function character_set_client collation_connection Database Collation +foofct CREATE DEFINER=`root`@`localhost` FUNCTION `foofct`(x char(20)) RETURNS char(20) CHARSET latin1\nbegin\n -- comment 1a\n # comment 1b\n /*\n comment 1c\n */\n\n -- empty line below\n\n -- empty line above\n return x;\nend latin1 latin1_swedish_ci latin1_swedish_ci +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +empty CREATE DEFINER=`root`@`localhost` PROCEDURE `empty`()\nbegin\nend latin1 latin1_swedish_ci latin1_swedish_ci +id data +foo 42 +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +foosp CREATE DEFINER=`root`@`localhost` PROCEDURE `foosp`()\ninsert into test.t1\n## These comments are part of the procedure body, and should be kept.\n# Comment 2a\n-- Comment 2b\n/* Comment 2c */\n -- empty line below\n\n -- empty line above\n values ("foo", 42) # comment 3, still part of the body latin1 latin1_swedish_ci latin1_swedish_ci +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +nicesp CREATE DEFINER=`root`@`localhost` PROCEDURE `nicesp`(a int)\nbegin\n -- declare some variables here\n declare b int;\n declare c float;\n\n -- do more stuff here\n -- commented nicely and so on\n\n -- famous last words ...\nend latin1 latin1_swedish_ci latin1_swedish_ci +Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation +t1_empty CREATE DEFINER=`root`@`localhost` trigger t1_empty after delete on t1\nfor each row\nbegin\nend latin1 latin1_swedish_ci latin1_swedish_ci +Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation +t1_bi CREATE DEFINER=`root`@`localhost` trigger t1_bi before insert on t1\nfor each row\nbegin\n# comment 1a\n-- comment 1b\n/*\n comment 1c\n*/\n -- declare some variables here\n declare b int;\n declare c float;\n\n -- do more stuff here\n -- commented nicely and so on\n\n -- famous last words ...\n set NEW.data := 12;\nend latin1 latin1_swedish_ci latin1_swedish_ci +id data +trig 12 +End of 5.0 tests diff --git a/mysql-test/r/mysqlbinlog.result b/mysql-test/r/mysqlbinlog.result index cb3a4ff34ab..cb8760279eb 100644 --- a/mysql-test/r/mysqlbinlog.result +++ b/mysql-test/r/mysqlbinlog.result @@ -326,6 +326,7 @@ flush logs; drop table t1; 1 drop table t1; +shell> mysqlbinlog std_data/corrupt-relay-bin.000624 > var/tmp/bug31793.sql End of 5.0 tests flush logs; BUG#31611: Security risk with BINLOG statement diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index c0856314ba5..d07aed5317a 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -4212,5 +4212,24 @@ TRUNCATE mysql.event; SHOW EVENTS; Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation # +# Bug#31113 mysqldump 5.1 can't handle a dash ("-") in database names +# +create database `test-database`; +use `test-database`; +create table test (a int); +DROP TABLE IF EXISTS `test`; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +CREATE TABLE `test` ( + `a` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1; +SET character_set_client = @saved_cs_client; +LOCK TABLES `test` WRITE; +/*!40000 ALTER TABLE `test` DISABLE KEYS */; +/*!40000 ALTER TABLE `test` ENABLE KEYS */; +UNLOCK TABLES; +drop database `test-database`; +use test; +# # End of 5.1 tests # diff --git a/mysql-test/r/outfile_loaddata.result b/mysql-test/r/outfile_loaddata.result new file mode 100644 index 00000000000..1bcaf308b7c --- /dev/null +++ b/mysql-test/r/outfile_loaddata.result @@ -0,0 +1,85 @@ +DROP TABLE IF EXISTS t1, t2; +# +# Bug#31663 FIELDS TERMINATED BY special character +# +CREATE TABLE t1 (i1 int, i2 int, c1 VARCHAR(256), c2 VARCHAR(256)); +INSERT INTO t1 VALUES (101, 202, '-r-', '=raker='); +# FIELDS TERMINATED BY 'raker', warning: +SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS TERMINATED BY 'raker' FROM t1; +Warnings: +Warning 1475 First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY +SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt'); +LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt') +101raker202raker-r-raker=raker= + +CREATE TABLE t2 SELECT * FROM t1; +LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 FIELDS TERMINATED BY 'raker'; +Warnings: +Warning 1262 Row 1 was truncated; it contained more data than there were input columns +SELECT * FROM t2; +i1 i2 c1 c2 +101 202 -r- =raker= +101 202 -r- = +DROP TABLE t2; +# Only numeric fields, FIELDS TERMINATED BY 'r', no warnings: +SELECT i1, i2 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS TERMINATED BY 'r' FROM t1; +SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt'); +LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt') +101r202 + +CREATE TABLE t2 SELECT i1, i2 FROM t1; +LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 FIELDS TERMINATED BY 'r'; +SELECT i1, i2 FROM t2; +i1 i2 +101 202 +101 202 +DROP TABLE t2; +# FIELDS TERMINATED BY '0', warning: +SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS TERMINATED BY '0' FROM t1; +Warnings: +Warning 1475 First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY +SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt'); +LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt') +10102020-r-0=raker= + +CREATE TABLE t2 SELECT * FROM t1; +LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 FIELDS TERMINATED BY '0'; +Warnings: +Warning 1262 Row 1 was truncated; it contained more data than there were input columns +SELECT * FROM t2; +i1 i2 c1 c2 +101 202 -r- =raker= +1 1 2 2 +DROP TABLE t2; +# FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0', warning: +SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0' FROM t1; +Warnings: +Warning 1475 First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY +SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt'); +LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt') +10102020"-r-"0"=raker=" + +CREATE TABLE t2 SELECT * FROM t1; +LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0'; +Warnings: +Warning 1262 Row 1 was truncated; it contained more data than there were input columns +SELECT * FROM t2; +i1 i2 c1 c2 +101 202 -r- =raker= +1 1 2 2 +DROP TABLE t2; +# Only string fields, FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0', no warnings: +SELECT c1, c2 INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0' FROM t1; +SELECT LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt'); +LOAD_FILE('MYSQLTEST_VARDIR/tmp/bug31663.txt') +"-r-"0"=raker=" + +CREATE TABLE t2 SELECT c1, c2 FROM t1; +LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0'; +SELECT c1, c2 FROM t2; +c1 c2 +-r- =raker= +-r- =raker= +DROP TABLE t2; +DROP TABLE t1; +# End of 5.0 tests. diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result index b8ca0a247d9..d646226daf8 100644 --- a/mysql-test/r/partition.result +++ b/mysql-test/r/partition.result @@ -1,4 +1,32 @@ drop table if exists t1; +CREATE TABLE t1 ( +d DATE NOT NULL +) +PARTITION BY RANGE( YEAR(d) ) ( +PARTITION p0 VALUES LESS THAN (1960), +PARTITION p1 VALUES LESS THAN (1970), +PARTITION p2 VALUES LESS THAN (1980), +PARTITION p3 VALUES LESS THAN (1990) +); +ALTER TABLE t1 ADD PARTITION ( +PARTITION `p5` VALUES LESS THAN (2010) +COMMENT 'APSTART \' APEND' +); +SELECT * FROM t1 LIMIT 1; +d +DROP TABLE t1; +create table t1 (id int auto_increment, s1 int, primary key (id)); +insert into t1 values (null,1); +insert into t1 values (null,6); +select * from t1; +id s1 +1 1 +2 6 +alter table t1 partition by range (id) ( +partition p0 values less than (3), +partition p1 values less than maxvalue +); +drop table t1; create table t1 (a int) partition by key(a) partitions 0.2+e1; @@ -687,7 +715,7 @@ partition by range (a) alter table t1 add partition (partition p1 values in (2)); ERROR HY000: Only LIST PARTITIONING can use VALUES IN in partition definition alter table t1 add partition (partition p1); -ERROR HY000: RANGE PARTITIONING requires definition of VALUES LESS THAN for each partition +ERROR HY000: Syntax error: RANGE PARTITIONING requires definition of VALUES LESS THAN for each partition drop table t1; create table t1 (a int) partition by list (a) @@ -695,7 +723,7 @@ partition by list (a) alter table t1 add partition (partition p1 values less than (2)); ERROR HY000: Only RANGE PARTITIONING can use VALUES LESS THAN in partition definition alter table t1 add partition (partition p1); -ERROR HY000: LIST PARTITIONING requires definition of VALUES IN for each partition +ERROR HY000: Syntax error: LIST PARTITIONING requires definition of VALUES IN for each partition drop table t1; create table t1 (a int) partition by hash (a) @@ -1257,4 +1285,9 @@ t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (b) (PARTITION p1 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION p2 VALUES LESS THAN (20) ENGINE = MyISAM) */ drop table t1, t2; +create table t1 +(s1 timestamp on update current_timestamp, s2 int) +partition by key(s1) partitions 3; +insert into t1 values (null,null); +drop table t1; End of 5.1 tests diff --git a/mysql-test/r/partition_02myisam.result b/mysql-test/r/partition_02myisam.result deleted file mode 100644 index 55263e4f8ce..00000000000 --- a/mysql-test/r/partition_02myisam.result +++ /dev/null @@ -1,1725 +0,0 @@ -SET SESSION storage_engine='MYISAM'; -SET @max_row = 200; -SET AUTOCOMMIT= 1; - -#------------------------------------------------------------------------ -# There are several testcases disabled because ouf the open bugs -# #15407 , #15408 , #15890 , #15961 , #13447 , #15966 , #15968, #16370 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ -# 0. Setting of auxiliary variables + Creation of an auxiliary table -# needed in all testcases -#------------------------------------------------------------------------ -DROP TABLE IF EXISTS t0_template; -CREATE TABLE t0_template ( f1 INTEGER, f2 char(20), PRIMARY KEY(f1)) -ENGINE = MEMORY; -# Logging of <max_row> INSERTs into t0_template suppressed - -#------------------------------------------------------------------------ -# 1. Some syntax checks -#------------------------------------------------------------------------ -# 1.1 Subpartioned table without subpartitioning rule must be rejected -DROP TABLE IF EXISTS t1; -# FIXME Implement testcases, where it is checked that all create and -# alter table statements -# - with missing mandatory parameters are rejected -# - with optional parameters are accepted -# - with wrong combinations of optional parameters are rejected -# - ............ - -#------------------------------------------------------------------------ -# 2. Checks where the engine is assigned on all supported (CREATE TABLE -# statement) positions + basic operations on the tables -# Storage engine mixups are currently (2005-12-23) not supported -#------------------------------------------------------------------------ -DROP TABLE IF EXISTS t1; -# 2.1 non partitioned table (for comparison) -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = 'MYISAM'; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.2 Assignment of storage engine just after column list only -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = 'MYISAM' -PARTITION BY HASH(f1) PARTITIONS 2; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) PARTITIONS 2 */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.3 Assignment of storage engine just after partition or subpartition -# name only -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) -( PARTITION part1 STORAGE ENGINE = 'MYISAM', -PARTITION part2 STORAGE ENGINE = 'MYISAM' -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (100) -(SUBPARTITION subpart11 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart12 STORAGE ENGINE = 'MYISAM'), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart22 STORAGE ENGINE = 'MYISAM') -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (100) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.4 Some but not all named partitions or subpartitions get a storage -# engine assigned -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) -( PARTITION part1 STORAGE ENGINE = 'MYISAM', -PARTITION part2 -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) -( PARTITION part1 , -PARTITION part2 STORAGE ENGINE = 'MYISAM' -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (100) -(SUBPARTITION subpart11, -SUBPARTITION subpart12 STORAGE ENGINE = 'MYISAM'), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart22 STORAGE ENGINE = 'MYISAM') -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (100) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (100) -(SUBPARTITION subpart11 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart12 STORAGE ENGINE = 'MYISAM'), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, -SUBPARTITION subpart22 ) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (100) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.5 Storage engine assignment after partition name + after name of -# subpartitions belonging to another partition -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (100) ENGINE = 'MYISAM' -(SUBPARTITION subpart11, -SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart22 STORAGE ENGINE = 'MYISAM') -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (100) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (100) -(SUBPARTITION subpart11 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart12 STORAGE ENGINE = 'MYISAM'), -PARTITION part2 VALUES LESS THAN (2147483647) ENGINE = 'MYISAM' -(SUBPARTITION subpart21, -SUBPARTITION subpart22) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (100) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.6 Precedence of storage engine assignments -# 2.6.1 Storage engine assignment after column list + after partition -# or subpartition name -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = 'MYISAM' -PARTITION BY HASH(f1) -( PARTITION part1 STORAGE ENGINE = 'MYISAM', -PARTITION part2 STORAGE ENGINE = 'MYISAM' -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = 'MYISAM' -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (100) -(SUBPARTITION subpart11 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart12 STORAGE ENGINE = 'MYISAM'), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart22 STORAGE ENGINE = 'MYISAM') -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (100) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.6.2 Storage engine assignment after partition name + after -# subpartition name -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (100) STORAGE ENGINE = 'MYISAM' -(SUBPARTITION subpart11 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart12 STORAGE ENGINE = 'MYISAM'), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21 STORAGE ENGINE = 'MYISAM', -SUBPARTITION subpart22 STORAGE ENGINE = 'MYISAM') -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (100) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.7 Session default engine differs from engine used within create table -SET SESSION storage_engine='MEMORY'; -SET SESSION storage_engine='MYISAM'; - -#------------------------------------------------------------------------ -# 3. Check assigning the number of partitions and subpartitions -# with and without named partitions/subpartitions -#------------------------------------------------------------------------ -DROP TABLE IF EXISTS t1; -# 3.1 (positive) without partition/subpartition number assignment -# 3.1.1 no partition number, no named partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 3.1.2 no partition number, named partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part2); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 3.1.3 variations on no partition/subpartition number, named partitions, -# different subpartitions are/are not named -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) (PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (200), PARTITION part3 VALUES LESS THAN (2147483647)) ; -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) (PARTITION part1 VALUES LESS THAN (100) -(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (200) -(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart31 , SUBPARTITION subpart32 )) ; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (100) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (200) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (2147483647) (SUBPARTITION subpart31 ENGINE = MyISAM, SUBPARTITION subpart32 ENGINE = MyISAM)) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 3.2 partition/subpartition numbers good and bad values and notations -DROP TABLE IF EXISTS t1; -# 3.2.1 partition/subpartition numbers INTEGER notation -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) PARTITIONS 2 */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 2 -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) SUBPARTITIONS 2 (PARTITION part1 VALUES LESS THAN (100) ENGINE = MyISAM, PARTITION part2 VALUES LESS THAN (2147483647) ENGINE = MyISAM) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 1; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) PARTITIONS 1 */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 1 -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) SUBPARTITIONS 1 (PARTITION part1 VALUES LESS THAN (100) ENGINE = MyISAM, PARTITION part2 VALUES LESS THAN (2147483647) ENGINE = MyISAM) */ -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 0; -ERROR HY000: Number of partitions = 0 is not an allowed value -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 0 -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -ERROR HY000: Number of subpartitions = 0 is not an allowed value -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS -1; -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 '-1' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS -1 -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '-1 -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (21' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 1000000; -ERROR HY000: Too many partitions (including subpartitions) were defined -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 1000000 -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -ERROR HY000: Too many partitions (including subpartitions) were defined -# 3.2.4 partition/subpartition numbers STRING notation -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS '2'; -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 ''2'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '2' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''2' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS '2.0'; -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 ''2.0'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '2.0' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''2.0' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN ' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS '0.2E+1'; -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 ''0.2E+1'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '0.2E+1' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''0.2E+1' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS TH' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS '2A'; -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 ''2A'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '2A' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''2A' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 'A2'; -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 ''A2'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 'A2' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''A2' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS ''; -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 '''' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (21' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 'GARBAGE'; -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 ''GARBAGE'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 'GARBAGE' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''GARBAGE' -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS T' at line 3 -# 3.2.5 partition/subpartition numbers other notations -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2A; -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 '2A' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 2A -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '2A -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (21' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS A2; -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 'A2' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS A2 -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 'A2 -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (21' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS GARBAGE; -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 'GARBAGE' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS GARBAGE -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 'GARBAGE -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THA' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS "2"; -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 '"2"' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS "2" -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '"2" -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS "2A"; -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 '"2A"' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS "2A" -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '"2A" -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS "A2"; -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 '"A2"' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS "A2" -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '"A2" -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS "GARBAGE"; -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 '"GARBAGE"' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS "GARBAGE" -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '"GARBAGE" -(PARTITION part1 VALUES LESS THAN (100), PARTITION part2 VALUES LESS T' at line 3 -# 3.3 Mixups of assigned partition/subpartition numbers and names -# 3.3.1 (positive) number of partition/subpartition -# = number of named partition/subpartition -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2 ( PARTITION part1, PARTITION part2 ) ; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */ -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) PARTITIONS 2 -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPARTITION subpart22) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */ -DROP TABLE t1; -# 3.3.2 (positive) number of partition/subpartition , -# 0 (= no) named partition/subpartition -# already checked above -# 3.3.3 (negative) number of partitions/subpartitions -# > number of named partitions/subpartitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2 ( PARTITION part1 ) ; -ERROR 42000: Wrong number of partitions defined, mismatch with previous setting near ')' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11 ), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPARTITION subpart22) -); -ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPAR' at line 5 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 ), -PARTITION part3 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart31, SUBPARTITION subpart32) -); -ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), -PARTITION part3 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart31, SUBPAR' at line 7 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) PARTITIONS 2 -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21 ) -); -ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ') -)' at line 7 -# 3.3.4 (negative) number of partitions < number of named partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 1 ( PARTITION part1, PARTITION part2 ) ; -ERROR 42000: Wrong number of partitions defined, mismatch with previous setting near ')' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 1 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPARTITION subpart22) -); -ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPAR' at line 5 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 1 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 ), -PARTITION part3 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart31, SUBPARTITION subpart32) -); -ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 ' at line 5 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 1 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPARTITION subpart22) -); -ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPAR' at line 5 - -#------------------------------------------------------------------------ -# 4. Checks of logical partition/subpartition name -# file name clashes during CREATE TABLE -#------------------------------------------------------------------------ -DROP TABLE IF EXISTS t1; -# 4.1 (negative) A partition name used more than once -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part1); -ERROR HY000: Duplicate partition name part1 -# FIXME Implement testcases with filename problems -# existing file of other table --- partition/subpartition file name -# partition/subpartition file name --- file of the same table - -#------------------------------------------------------------------------ -# 5. Alter table experiments -#------------------------------------------------------------------------ -DROP TABLE IF EXISTS t1; -# 5.1 alter table add partition -# 5.1.1 (negative) add partition to non partitioned table -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -ALTER TABLE t1 ADD PARTITION (PARTITION part1); -Got one of the listed errors -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -DROP TABLE t1; -# 5.1.2 Add one partition to a table with one partition -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) */ -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 100 - 1; -ALTER TABLE t1 ADD PARTITION (PARTITION part1); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION p0 ENGINE = MyISAM, PARTITION part1 ENGINE = MyISAM) */ -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 100 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 5.1.3 Several times add one partition to a table with some partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part3); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part3 ENGINE = MyISAM) */ -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 100 - 1; -ALTER TABLE t1 ADD PARTITION (PARTITION part0); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part3 ENGINE = MyISAM, PARTITION part0 ENGINE = MyISAM) */ -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 100 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DELETE FROM t1; -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 100 - 1; -ALTER TABLE t1 ADD PARTITION (PARTITION part2); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part3 ENGINE = MyISAM, PARTITION part0 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */ -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 100 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DELETE FROM t1; -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 100 - 1; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part3 ENGINE = MyISAM, PARTITION part0 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */ -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 100 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 5.1.4 Add several partitions to a table with some partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part3); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part3 ENGINE = MyISAM) */ -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 100 - 1; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) DEFAULT NULL, - `f2` char(20) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = MyISAM, PARTITION part3 ENGINE = MyISAM) */ -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 100 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 5.1.5 (negative) Add partitions to a table with some partitions -# clash on new and already existing partition names -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part2, PARTITION part3); -ALTER TABLE t1 ADD PARTITION (PARTITION part1); -ERROR HY000: Duplicate partition name part1 -ALTER TABLE t1 ADD PARTITION (PARTITION part2); -ERROR HY000: Duplicate partition name part2 -ALTER TABLE t1 ADD PARTITION (PARTITION part3); -ERROR HY000: Duplicate partition name part3 -ALTER TABLE t1 ADD PARTITION (PARTITION part1, PARTITION part2, PARTITION part3); -ERROR HY000: Duplicate partition name part1 -DROP TABLE t1; -# 5.2 alter table add subpartition -# 5.2.1 Add one subpartition to a table with subpartitioning rule and -# no explicit defined subpartitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -(PARTITION part1 VALUES LESS THAN (100)); -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 100 - 1; -ALTER TABLE t1 ADD PARTITION (PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21)); -DROP TABLE t1; -DROP TABLE if exists t0_template; diff --git a/mysql-test/r/partition_datatype.result b/mysql-test/r/partition_datatype.result new file mode 100644 index 00000000000..c6506178b03 --- /dev/null +++ b/mysql-test/r/partition_datatype.result @@ -0,0 +1,282 @@ +drop table if exists t1; +create table t1 (a tinyint not null) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +a +2 +drop table t1; +create table t1 (a smallint not null) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +a +2 +drop table t1; +create table t1 (a mediumint not null) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +a +2 +drop table t1; +create table t1 (a int not null) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +a +2 +drop table t1; +create table t1 (a bigint not null) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +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; +a +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; +a +2.1 +drop table t1; +create table t1 (a decimal 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 +drop table t1; +create table t1 (a date not null) partition by key (a); +insert into t1 values ('2001-01-01'); +select * from t1 where a = '2001-01-01'; +a +2001-01-01 +drop table t1; +create table t1 (a datetime not null) partition by key (a); +insert into t1 values ('2001-01-01 01:02:03'); +select * from t1 where a = '2001-01-01 01:02:03'; +a +2001-01-01 01:02:03 +drop table t1; +create table t1 (a timestamp not null) partition by key (a); +insert into t1 values ('2001-01-01 01:02:03'); +select * from t1 where a = '2001-01-01 01:02:03'; +a +2001-01-01 01:02:03 +drop table t1; +create table t1 (a time not null) partition by key (a); +insert into t1 values ('01:02:03'); +select * from t1 where a = '01:02:03'; +a +01:02:03 +drop table t1; +create table t1 (a year not null) partition by key (a); +insert into t1 values ('2001'); +select * from t1 where a = '2001'; +a +2001 +drop table t1; +create table t1 (a varchar(10) character set utf8 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a varchar(300) character set utf8 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a varchar(10) character set latin1 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a varchar(300) character set latin1 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a char(10) character set utf8 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a char(10) character set latin1 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a enum('y','n') not null) partition by key (a); +insert into t1 values ('y'); +select * from t1 where a = 'y'; +a +y +drop table t1; +create table t1 (a set('y','n') not null) partition by key (a); +insert into t1 values ('y'); +select * from t1 where a = 'y'; +a +y +drop table t1; +create table t1 (a tinyint) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +a +2 +drop table t1; +create table t1 (a smallint) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +a +2 +drop table t1; +create table t1 (a mediumint) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +a +2 +drop table t1; +create table t1 (a int) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +a +2 +drop table t1; +create table t1 (a bigint) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +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; +a +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; +a +2.1 +drop table t1; +create table t1 (a decimal) 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 +drop table t1; +create table t1 (a date) partition by key (a); +insert into t1 values ('2001-01-01'); +select * from t1 where a = '2001-01-01'; +a +2001-01-01 +drop table t1; +create table t1 (a datetime) partition by key (a); +insert into t1 values ('2001-01-01 01:02:03'); +select * from t1 where a = '2001-01-01 01:02:03'; +a +2001-01-01 01:02:03 +drop table t1; +create table t1 (a timestamp null) partition by key (a); +insert into t1 values ('2001-01-01 01:02:03'); +select * from t1 where a = '2001-01-01 01:02:03'; +a +2001-01-01 01:02:03 +drop table t1; +create table t1 (a time) partition by key (a); +insert into t1 values ('01:02:03'); +select * from t1 where a = '01:02:03'; +a +01:02:03 +drop table t1; +create table t1 (a year) partition by key (a); +insert into t1 values ('2001'); +select * from t1 where a = '2001'; +a +2001 +drop table t1; +create table t1 (a varchar(10) character set utf8) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a varchar(300) character set utf8) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a varchar(10) character set latin1) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a varchar(300) character set latin1) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a char(10) character set utf8) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a char(10) character set latin1) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +a +abc +drop table t1; +create table t1 (a enum('y','n')) partition by key (a); +insert into t1 values ('y'); +select * from t1 where a = 'y'; +a +y +drop table t1; +create table t1 (a set('y','n')) partition by key (a); +insert into t1 values ('y'); +select * from t1 where a = 'y'; +a +y +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%'; +a +select * from t1 where a like 'aaa%'; +a +aaaa +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%'; +a +select * from t1 where a like 'aaa%'; +a +aaaa +drop table t1; +create table t1 (a varchar(65533) not null) partition by key (a); +insert into t1 values ('aaaa'); +select * from t1 where a = 'aaa%'; +a +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 +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 diff --git a/mysql-test/r/partition_error.result b/mysql-test/r/partition_error.result index 7952c8df609..46532cb32ab 100644 --- a/mysql-test/r/partition_error.result +++ b/mysql-test/r/partition_error.result @@ -1,4 +1,13 @@ drop table if exists t1; +CREATE TABLE t1 ( +a int +) +PARTITION BY RANGE (a) +( +PARTITION p0 VALUES LESS THAN (1), +PARTITION p1 VALU ES LESS THAN (2) +); +ERROR HY000: Syntax error: RANGE PARTITIONING requires definition of VALUES LESS THAN for each partition partition by list (a) partitions 3 (partition x1 values in (1,2,9,4) tablespace ts1, @@ -351,7 +360,7 @@ partition by range (a) partitions 2 (partition x1 values less than (4), partition x2); -ERROR HY000: RANGE PARTITIONING requires definition of VALUES LESS THAN for each partition +ERROR HY000: Syntax error: RANGE PARTITIONING requires definition of VALUES LESS THAN for each partition CREATE TABLE t1 ( a int not null, b int not null, @@ -531,7 +540,7 @@ partition by list (a) partitions 2 (partition x1 values in (4), partition x2); -ERROR HY000: LIST PARTITIONING requires definition of VALUES IN for each partition +ERROR HY000: Syntax error: LIST PARTITIONING requires definition of VALUES IN for each partition CREATE TABLE t1 ( a int not null, b int not null, @@ -551,7 +560,7 @@ partition by list (a) partitions 2 (partition x1 values in (4,6), partition x2); -ERROR HY000: LIST PARTITIONING requires definition of VALUES IN for each partition +ERROR HY000: Syntax error: LIST PARTITIONING requires definition of VALUES IN for each partition CREATE TABLE t1 ( a int not null, b int not null, diff --git a/mysql-test/r/partition_hash.result b/mysql-test/r/partition_hash.result index 9a82a36d902..72f036be099 100644 --- a/mysql-test/r/partition_hash.result +++ b/mysql-test/r/partition_hash.result @@ -183,3 +183,6 @@ c1 c2 c3 182 abc 2002-11-09 184 abc 2002-11-22 drop table t1; +CREATE TABLE t1 (c1 INT) ENGINE=MyISAM PARTITION BY HASH(c1) PARTITIONS 1; +INSERT DELAYED INTO t1 VALUES (1); +DROP TABLE t1; diff --git a/mysql-test/r/partition_innodb.result b/mysql-test/r/partition_innodb.result index 5b755b6bfd5..f80e0001ea8 100644 --- a/mysql-test/r/partition_innodb.result +++ b/mysql-test/r/partition_innodb.result @@ -136,3 +136,16 @@ SELECT COUNT(*) FROM t1; COUNT(*) 2 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) +subpartition by key (char_column) subpartitions 2 +(PARTITION p1 VALUES LESS THAN (5) ENGINE = myisam); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `int_column` int(11) DEFAULT NULL, + `char_column` char(5) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (int_column) SUBPARTITION BY KEY (char_column) SUBPARTITIONS 2 (PARTITION p1 VALUES LESS THAN (5) ENGINE = MyISAM) */ +drop table t1; diff --git a/mysql-test/r/partition_mgm.result b/mysql-test/r/partition_mgm.result index 04ac603fea7..9ef220028b3 100644 --- a/mysql-test/r/partition_mgm.result +++ b/mysql-test/r/partition_mgm.result @@ -17,12 +17,6 @@ t1 CREATE TABLE `t1` ( `f_date` date DEFAULT NULL, `f_varchar` varchar(30) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) PARTITIONS 2 */ -hello/master-data/test/t1#P#p0.MYD -hello/master-data/test/t1#P#p0.MYI -hello/master-data/test/t1#P#p1.MYD -hello/master-data/test/t1#P#p1.MYI -hello/master-data/test/t1.frm -hello/master-data/test/t1.par ALTER TABLE t1 COALESCE PARTITION 1; SHOW CREATE TABLE t1; Table Create Table @@ -30,10 +24,6 @@ t1 CREATE TABLE `t1` ( `f_date` date DEFAULT NULL, `f_varchar` varchar(30) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) PARTITIONS 1 */ -hello/master-data/test/t1#P#p0.MYD -hello/master-data/test/t1#P#p0.MYI -hello/master-data/test/t1.frm -hello/master-data/test/t1.par drop table t1; create table t1 (a int) partition by list (a) diff --git a/mysql-test/r/partition_symlink.result b/mysql-test/r/partition_symlink.result new file mode 100644 index 00000000000..20e841d2e0e --- /dev/null +++ b/mysql-test/r/partition_symlink.result @@ -0,0 +1,83 @@ +DROP TABLE IF EXISTS t1; +DROP DATABASE IF EXISTS mysqltest2; +# Creating two non colliding tables mysqltest2.t1 and test.t1 +# test.t1 have partitions in mysqltest2-directory! +# user root: +CREATE USER mysqltest_1@localhost; +CREATE DATABASE mysqltest2; +USE mysqltest2; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (0); +# user mysqltest_1: +USE test; +CREATE TABLE t1 (a INT) +PARTITION BY LIST (a) ( +PARTITION p0 VALUES IN (0) +DATA DIRECTORY 'MYSQLTEST_VARDIR/master-data/mysqltest2' + INDEX DIRECTORY 'MYSQLTEST_VARDIR/master-data/mysqltest2', +PARTITION p1 VALUES IN (1) +DATA DIRECTORY 'MYSQLTEST_VARDIR/master-data/test' + INDEX DIRECTORY 'MYSQLTEST_VARDIR/master-data/test', +PARTITION p2 VALUES IN (2) +); +# without the patch for bug#32091 this would create +# files mysqltest2/t1.MYD + .MYI and possible overwrite +# the mysqltest2.t1 table (depending on bug#32111) +ALTER TABLE t1 REMOVE PARTITIONING; +INSERT INTO t1 VALUES (1); +SELECT * FROM t1; +a +1 +# user root: +USE mysqltest2; +FLUSH TABLES; +# if the patch works, this should be different +# and before the patch they were the same! +SELECT * FROM t1; +a +0 +USE test; +SELECT * FROM t1; +a +1 +DROP TABLE t1; +DROP DATABASE mysqltest2; +# test that symlinks can not overwrite files when CREATE TABLE +# user root: +CREATE DATABASE mysqltest2; +USE mysqltest2; +CREATE TABLE t1 (a INT) +PARTITION BY LIST (a) ( +PARTITION p0 VALUES IN (0) +DATA DIRECTORY 'MYSQLTEST_VARDIR/master-data/mysqltest2' + INDEX DIRECTORY 'MYSQLTEST_VARDIR/master-data/mysqltest2', +PARTITION p1 VALUES IN (1) +DATA DIRECTORY 'MYSQLTEST_VARDIR/master-data/test' + INDEX DIRECTORY 'MYSQLTEST_VARDIR/master-data/test' + ); +# user mysqltest_1: +USE test; +CREATE TABLE t1 (a INT) +PARTITION BY LIST (a) ( +PARTITION p0 VALUES IN (0) +DATA DIRECTORY 'MYSQLTEST_VARDIR/master-data/mysqltest2' + INDEX DIRECTORY 'MYSQLTEST_VARDIR/master-data/mysqltest2', +PARTITION p1 VALUES IN (1) +DATA DIRECTORY 'MYSQLTEST_VARDIR/master-data/test' + INDEX DIRECTORY 'MYSQLTEST_VARDIR/master-data/test' + ); +Got one of the listed errors +CREATE TABLE t1 (a INT) +PARTITION BY LIST (a) ( +PARTITION p0 VALUES IN (0) +DATA DIRECTORY 'MYSQLTEST_VARDIR/master-data/test' + INDEX DIRECTORY 'MYSQLTEST_VARDIR/master-data/test', +PARTITION p1 VALUES IN (1) +DATA DIRECTORY 'MYSQLTEST_VARDIR/master-data/mysqltest2' + INDEX DIRECTORY 'MYSQLTEST_VARDIR/master-data/mysqltest2' + ); +Got one of the listed errors +# user root (cleanup): +DROP DATABASE mysqltest2; +USE test; +DROP USER mysqltest_1@localhost; diff --git a/mysql-test/r/plugin.result b/mysql-test/r/plugin.result index 8628acecf55..e4af1535775 100644 --- a/mysql-test/r/plugin.result +++ b/mysql-test/r/plugin.result @@ -17,3 +17,13 @@ UNINSTALL PLUGIN EXAMPLE; ERROR 42000: PLUGIN EXAMPLE does not exist UNINSTALL PLUGIN non_exist; ERROR 42000: PLUGIN non_exist does not exist +# +# Bug#32034: check_func_enum() does not check correct values but set it +# to impossible int val +# +INSTALL PLUGIN example SONAME 'ha_example.so'; +SET GLOBAL example_enum_var= e1; +SET GLOBAL example_enum_var= e2; +SET GLOBAL example_enum_var= impossible; +ERROR 42000: Variable 'enum_var' can't be set to the value of 'impossible' +UNINSTALL PLUGIN example; diff --git a/mysql-test/r/ps_2myisam.result b/mysql-test/r/ps_2myisam.result index 6f0bad71f23..eb8ef7a85c3 100644 --- a/mysql-test/r/ps_2myisam.result +++ b/mysql-test/r/ps_2myisam.result @@ -63,7 +63,7 @@ def test t9 t9 c11 c11 246 9 6 Y 0 4 63 def test t9 t9 c12 c12 246 10 6 Y 0 4 63 def test t9 t9 c13 c13 10 10 10 Y 128 0 63 def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 +def test t9 t9 c15 c15 7 19 19 N 9441 0 63 def test t9 t9 c16 c16 11 8 8 Y 128 0 63 def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 def test t9 t9 c18 c18 1 4 1 Y 32768 0 63 diff --git a/mysql-test/r/ps_3innodb.result b/mysql-test/r/ps_3innodb.result index 85a109b0630..15650efa41d 100644 --- a/mysql-test/r/ps_3innodb.result +++ b/mysql-test/r/ps_3innodb.result @@ -63,7 +63,7 @@ def test t9 t9 c11 c11 246 9 6 Y 0 4 63 def test t9 t9 c12 c12 246 10 6 Y 0 4 63 def test t9 t9 c13 c13 10 10 10 Y 128 0 63 def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 +def test t9 t9 c15 c15 7 19 19 N 9441 0 63 def test t9 t9 c16 c16 11 8 8 Y 128 0 63 def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 def test t9 t9 c18 c18 1 4 1 Y 32768 0 63 diff --git a/mysql-test/r/ps_4heap.result b/mysql-test/r/ps_4heap.result index 980b89ad504..486f770220e 100644 --- a/mysql-test/r/ps_4heap.result +++ b/mysql-test/r/ps_4heap.result @@ -64,7 +64,7 @@ def test t9 t9 c11 c11 246 9 6 Y 0 4 63 def test t9 t9 c12 c12 246 10 6 Y 0 4 63 def test t9 t9 c13 c13 10 10 10 Y 128 0 63 def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 +def test t9 t9 c15 c15 7 19 19 N 9441 0 63 def test t9 t9 c16 c16 11 8 8 Y 128 0 63 def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 def test t9 t9 c18 c18 1 4 1 Y 32768 0 63 diff --git a/mysql-test/r/ps_5merge.result b/mysql-test/r/ps_5merge.result index e95f8766a24..0229b0ece08 100644 --- a/mysql-test/r/ps_5merge.result +++ b/mysql-test/r/ps_5merge.result @@ -106,7 +106,7 @@ def test t9 t9 c11 c11 246 9 6 Y 0 4 63 def test t9 t9 c12 c12 246 10 6 Y 0 4 63 def test t9 t9 c13 c13 10 10 10 Y 128 0 63 def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 +def test t9 t9 c15 c15 7 19 19 N 9441 0 63 def test t9 t9 c16 c16 11 8 8 Y 128 0 63 def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 def test t9 t9 c18 c18 1 4 1 Y 32768 0 63 @@ -3128,7 +3128,7 @@ def test t9 t9 c11 c11 246 9 6 Y 0 4 63 def test t9 t9 c12 c12 246 10 6 Y 0 4 63 def test t9 t9 c13 c13 10 10 10 Y 128 0 63 def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 +def test t9 t9 c15 c15 7 19 19 N 9441 0 63 def test t9 t9 c16 c16 11 8 8 Y 128 0 63 def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 def test t9 t9 c18 c18 1 4 1 Y 32768 0 63 diff --git a/mysql-test/r/rpl_drop_view.result b/mysql-test/r/rpl_drop_view.result new file mode 100644 index 00000000000..ef625464881 --- /dev/null +++ b/mysql-test/r/rpl_drop_view.result @@ -0,0 +1,27 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +drop table if exists t1, t2; +drop view if exists v1, v2, v3, not_exist_view; +create table t1 (a int); +create table t2 (b int); +create table t3 (c int); +create view v1 as select * from t1; +create view v2 as select * from t2; +create view v3 as select * from t3; +drop view not_exist_view; +ERROR 42S02: Unknown table 'not_exist_view' +drop view v1, not_exist_view; +ERROR 42S02: Unknown table 'not_exist_view' +select * from v1; +ERROR 42S02: Table 'test.v1' doesn't exist +drop view v2, v3; +select * from v1; +ERROR 42S02: Table 'test.v1' doesn't exist +select * from v2; +ERROR 42S02: Table 'test.v2' doesn't exist +select * from v3; +ERROR 42S02: Table 'test.v3' doesn't exist diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index 1acb82e4137..719d0926022 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -2827,6 +2827,14 @@ FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF 8FFFFFFFFFFFFFFF 7FFFFFFFFFFFFFFF drop table t1; +CREATE TABLE t1 (c0 int); +CREATE TABLE t2 (c0 int); +INSERT INTO t1 VALUES(@@connect_timeout); +INSERT INTO t2 VALUES(@@connect_timeout); +SELECT * FROM t1 JOIN t2 ON t1.c0 = t2.c0 WHERE (t1.c0 <=> @@connect_timeout); +c0 c0 +X X +DROP TABLE t1, t2; End of 4.1 tests CREATE TABLE t1 ( K2C4 varchar(4) character set latin1 collate latin1_bin NOT NULL default '', @@ -3233,40 +3241,40 @@ drop table t1, t2 ,t3; create table t1(f1 int, f2 date); insert into t1 values(1,'2005-01-01'),(2,'2005-09-01'),(3,'2005-09-30'), (4,'2005-10-01'),(5,'2005-12-30'); -select * from t1 where f2 >= 0; +select * from t1 where f2 >= 0 order by f2; f1 f2 1 2005-01-01 2 2005-09-01 3 2005-09-30 4 2005-10-01 5 2005-12-30 -select * from t1 where f2 >= '0000-00-00'; +select * from t1 where f2 >= '0000-00-00' order by f2; f1 f2 1 2005-01-01 2 2005-09-01 3 2005-09-30 4 2005-10-01 5 2005-12-30 -select * from t1 where f2 >= '2005-09-31'; +select * from t1 where f2 >= '2005-09-31' order by f2; f1 f2 4 2005-10-01 5 2005-12-30 -select * from t1 where f2 >= '2005-09-3a'; +select * from t1 where f2 >= '2005-09-3a' order by f2; f1 f2 +3 2005-09-30 4 2005-10-01 5 2005-12-30 Warnings: Warning 1292 Incorrect date value: '2005-09-3a' for column 'f2' at row 1 -select * from t1 where f2 <= '2005-09-31'; +select * from t1 where f2 <= '2005-09-31' order by f2; f1 f2 1 2005-01-01 2 2005-09-01 3 2005-09-30 -select * from t1 where f2 <= '2005-09-3a'; +select * from t1 where f2 <= '2005-09-3a' order by f2; f1 f2 1 2005-01-01 2 2005-09-01 -3 2005-09-30 Warnings: Warning 1292 Incorrect date value: '2005-09-3a' for column 'f2' at row 1 drop table t1; @@ -4062,25 +4070,208 @@ x 1 Warnings: Warning 1466 Leading spaces are removed from name ' x' +CREATE VIEW v1 AS SELECT 1 AS ``; +ERROR 42000: Incorrect column name '' CREATE VIEW v1 AS SELECT 1 AS ` `; +ERROR 42000: Incorrect column name ' ' +CREATE VIEW v1 AS SELECT 1 AS ` `; +ERROR 42000: Incorrect column name ' ' +CREATE VIEW v1 AS SELECT (SELECT 1 AS ` `); +ERROR 42000: Incorrect column name ' ' +CREATE VIEW v1 AS SELECT 1 AS ` x`; Warnings: -Warning 1474 Name ' ' has become '' -SELECT `` FROM v1; - +Warning 1466 Leading spaces are removed from name ' x' +SELECT `x` FROM v1; +x +1 +ALTER VIEW v1 AS SELECT 1 AS ` `; +ERROR 42000: Incorrect column name ' ' +DROP VIEW v1; +select str_to_date('2007-10-09','%Y-%m-%d') between '2007/10/01 00:00:00 GMT' + and '2007/10/20 00:00:00 GMT'; +str_to_date('2007-10-09','%Y-%m-%d') between '2007/10/01 00:00:00 GMT' + and '2007/10/20 00:00:00 GMT' 1 -CREATE VIEW v2 AS SELECT 1 AS ` `; Warnings: -Warning 1474 Name ' ' has become '' -SELECT `` FROM v2; - +Warning 1292 Truncated incorrect datetime value: '2007/10/01 00:00:00 GMT' +Warning 1292 Truncated incorrect datetime value: '2007/10/20 00:00:00 GMT' +select str_to_date('2007-10-09','%Y-%m-%d') > '2007/10/01 00:00:00 GMT-6'; +str_to_date('2007-10-09','%Y-%m-%d') > '2007/10/01 00:00:00 GMT-6' 1 -CREATE VIEW v3 AS SELECT 1 AS ` x`; Warnings: -Warning 1466 Leading spaces are removed from name ' x' -SELECT `x` FROM v3; -x +Warning 1292 Truncated incorrect date value: '2007/10/01 00:00:00 GMT-6' +select str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/2000:00:00 GMT-6'; +str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/2000:00:00 GMT-6' +1 +Warnings: +Warning 1292 Truncated incorrect date value: '2007/10/2000:00:00 GMT-6' +select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-1 00:00:00 GMT-6'; +str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-1 00:00:00 GMT-6' +1 +Warnings: +Warning 1292 Truncated incorrect date value: '2007-10-1 00:00:00 GMT-6' +select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 x00:00:00 GMT-6'; +str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 x00:00:00 GMT-6' +1 +Warnings: +Warning 1292 Truncated incorrect date value: '2007-10-01 x00:00:00 GMT-6' +select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:00:00 GMT-6'; +str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:00:00 GMT-6' +1 +Warnings: +Warning 1292 Truncated incorrect datetime value: '2007-10-01 00:00:00 GMT-6' +select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:x00:00 GMT-6'; +str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:x00:00 GMT-6' +1 +Warnings: +Warning 1292 Truncated incorrect datetime value: '2007-10-01 00:x00:00 GMT-6' +select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 x12:34:56 GMT-6'; +str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 x12:34:56 GMT-6' +1 +Warnings: +Warning 1292 Truncated incorrect datetime value: '2007-10-01 x12:34:56 GMT-6' +select str_to_date('2007-10-01 12:34:00','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6'; +str_to_date('2007-10-01 12:34:00','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6' +1 +Warnings: +Warning 1292 Truncated incorrect datetime value: '2007-10-01 12:34x:56 GMT-6' +select str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6'; +str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6' +0 +Warnings: +Warning 1292 Truncated incorrect datetime value: '2007-10-01 12:34x:56 GMT-6' +select str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34:56'; +str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34:56' +1 +select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 12:00:00'; +str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 12:00:00' +0 +select str_to_date('2007-10-01 12','%Y-%m-%d %H') = '2007-10-01 12:00:00'; +str_to_date('2007-10-01 12','%Y-%m-%d %H') = '2007-10-01 12:00:00' +1 +select str_to_date('2007-10-01 12:34','%Y-%m-%d %H') = '2007-10-01 12:00:00'; +str_to_date('2007-10-01 12:34','%Y-%m-%d %H') = '2007-10-01 12:00:00' +1 +Warnings: +Warning 1292 Truncated incorrect datetime value: '2007-10-01 12:34' +select str_to_date('2007-02-30 12:34','%Y-%m-%d %H:%i') = '2007-02-30 12:34'; +str_to_date('2007-02-30 12:34','%Y-%m-%d %H:%i') = '2007-02-30 12:34' +1 +select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34'; +str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34' +1 +select str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01 00:00:00' + and '2007/10/20 00:00:00'; +str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01 00:00:00' + and '2007/10/20 00:00:00' +1 +set SQL_MODE=TRADITIONAL; +select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34'; +str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34' +0 +Warnings: +Warning 1292 Truncated incorrect datetime value: '2007-10-00 12:34' +select str_to_date('2007-10-01 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34'; +str_to_date('2007-10-01 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34' +0 +Warnings: +Warning 1292 Truncated incorrect datetime value: '2007-10-00 12:34' +select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-01 12:34'; +str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-01 12:34' +0 +Warnings: +Warning 1292 Truncated incorrect datetime value: '2007-10-00 12:34:00' +select str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01' + and '2007/10/20'; +str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01' + and '2007/10/20' +0 +Warnings: +Warning 1292 Incorrect datetime value: '2007-10-00' for column '2007/09/01' at row 1 +Warning 1292 Incorrect datetime value: '2007-10-00' for column '2007/10/20' at row 1 +set SQL_MODE=DEFAULT; +select str_to_date('2007-10-00','%Y-%m-%d') between '' and '2007/10/20'; +str_to_date('2007-10-00','%Y-%m-%d') between '' and '2007/10/20' +1 +Warnings: +Warning 1292 Truncated incorrect datetime value: '' +select str_to_date('','%Y-%m-%d') between '2007/10/01' and '2007/10/20'; +str_to_date('','%Y-%m-%d') between '2007/10/01' and '2007/10/20' +0 +select str_to_date('','%Y-%m-%d %H:%i') = '2007-10-01 12:34'; +str_to_date('','%Y-%m-%d %H:%i') = '2007-10-01 12:34' +0 +select str_to_date(NULL,'%Y-%m-%d %H:%i') = '2007-10-01 12:34'; +str_to_date(NULL,'%Y-%m-%d %H:%i') = '2007-10-01 12:34' +NULL +select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = ''; +str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '' +0 +Warnings: +Warning 1292 Truncated incorrect datetime value: '' +select str_to_date('1','%Y-%m-%d') = '1'; +str_to_date('1','%Y-%m-%d') = '1' +0 +Warnings: +Warning 1292 Truncated incorrect date value: '1' +select str_to_date('1','%Y-%m-%d') = '1'; +str_to_date('1','%Y-%m-%d') = '1' +0 +Warnings: +Warning 1292 Truncated incorrect date value: '1' +select str_to_date('','%Y-%m-%d') = ''; +str_to_date('','%Y-%m-%d') = '' +0 +Warnings: +Warning 1292 Truncated incorrect date value: '' +select str_to_date('1000-01-01','%Y-%m-%d') between '0000-00-00' and NULL; +str_to_date('1000-01-01','%Y-%m-%d') between '0000-00-00' and NULL +0 +select str_to_date('1000-01-01','%Y-%m-%d') between NULL and '2000-00-00'; +str_to_date('1000-01-01','%Y-%m-%d') between NULL and '2000-00-00' +0 +select str_to_date('1000-01-01','%Y-%m-%d') between NULL and NULL; +str_to_date('1000-01-01','%Y-%m-%d') between NULL and NULL +0 +CREATE TABLE t1 (c11 INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t2 (c21 INT UNSIGNED NOT NULL, +c22 INT DEFAULT NULL, +KEY(c21, c22)); +CREATE TABLE t3 (c31 INT UNSIGNED NOT NULL DEFAULT 0, +c32 INT DEFAULT NULL, +c33 INT NOT NULL, +c34 INT UNSIGNED DEFAULT 0, +KEY (c33, c34, c32)); +INSERT INTO t1 values (),(),(),(),(); +INSERT INTO t2 SELECT a.c11, b.c11 FROM t1 a, t1 b; +INSERT INTO t3 VALUES (1, 1, 1, 0), +(2, 2, 0, 0), +(3, 3, 1, 0), +(4, 4, 0, 0), +(5, 5, 1, 0); +SELECT c32 FROM t1, t2, t3 WHERE t1.c11 IN (1, 3, 5) AND +t3.c31 = t1.c11 AND t2.c21 = t1.c11 AND +t3.c33 = 1 AND t2.c22 in (1, 3) +ORDER BY c32; +c32 +1 +1 +3 +3 +5 +5 +SELECT c32 FROM t1, t2, t3 WHERE t1.c11 IN (1, 3, 5) AND +t3.c31 = t1.c11 AND t2.c21 = t1.c11 AND +t3.c33 = 1 AND t2.c22 in (1, 3) +ORDER BY c32 DESC; +c32 +5 +5 +3 +3 +1 1 -DROP VIEW v1, v2, v3; +DROP TABLE t1, t2, t3; # # Bug#30736: Row Size Too Large Error Creating a Table and diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result index 04a5253e6a8..ff32d2a1512 100644 --- a/mysql-test/r/show_check.result +++ b/mysql-test/r/show_check.result @@ -979,7 +979,7 @@ def COLUMNS CHARACTER_SET_NAME CHARACTER_SET_NAME 253 192 0 Y 0 0 33 def COLUMNS COLLATION_NAME COLLATION_NAME 253 192 0 Y 0 0 33 def COLUMNS COLUMN_TYPE COLUMN_TYPE 252 589815 7 N 17 0 33 def COLUMNS COLUMN_KEY COLUMN_KEY 253 9 3 N 1 0 33 -def COLUMNS EXTRA EXTRA 253 60 0 N 1 0 33 +def COLUMNS EXTRA EXTRA 253 81 0 N 1 0 33 def COLUMNS PRIVILEGES PRIVILEGES 253 240 31 N 1 0 33 def COLUMNS COLUMN_COMMENT COLUMN_COMMENT 253 765 0 N 1 0 33 TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT @@ -998,7 +998,7 @@ def COLUMNS COLUMN_TYPE Type 252 589815 7 N 17 0 33 def COLUMNS IS_NULLABLE Null 253 9 2 N 1 0 33 def COLUMNS COLUMN_KEY Key 253 9 3 N 1 0 33 def COLUMNS COLUMN_DEFAULT Default 252 589815 0 Y 16 0 33 -def COLUMNS EXTRA Extra 253 60 0 N 1 0 33 +def COLUMNS EXTRA Extra 253 81 0 N 1 0 33 Field Type Null Key Default Extra c int(11) NO PRI NULL ---------------------------------------------------------------- diff --git a/mysql-test/r/skip_grants.result b/mysql-test/r/skip_grants.result index 6bb8cbea2f1..cd652c03f96 100644 --- a/mysql-test/r/skip_grants.result +++ b/mysql-test/r/skip_grants.result @@ -72,3 +72,8 @@ count(*) select count(*) from information_schema.USER_PRIVILEGES; count(*) 0 +CREATE FUNCTION a RETURNS STRING SONAME ''; +ERROR HY000: Can't initialize function 'a'; UDFs are unavailable with the --skip-grant-tables option +DROP FUNCTION a; +ERROR 42000: FUNCTION test.a does not exist +End of 5.0 tests diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result index 412f6b94fa2..68aa278585f 100644 --- a/mysql-test/r/sp.result +++ b/mysql-test/r/sp.result @@ -5670,7 +5670,7 @@ drop function if exists pi; create function pi() returns varchar(50) return "pie, my favorite desert."; Warnings: -Note 1584 This function 'pi' has the same name as a native function +Note 1585 This function 'pi' has the same name as a native function SET @save_sql_mode=@@sql_mode; SET SQL_MODE='IGNORE_SPACE'; select pi(), pi (); @@ -5719,15 +5719,15 @@ use test; create function `database`() returns varchar(50) return "Stored function database"; Warnings: -Note 1584 This function 'database' has the same name as a native function +Note 1585 This function 'database' has the same name as a native function create function `current_user`() returns varchar(50) return "Stored function current_user"; Warnings: -Note 1584 This function 'current_user' has the same name as a native function +Note 1585 This function 'current_user' has the same name as a native function create function md5(x varchar(50)) returns varchar(50) return "Stored function md5"; Warnings: -Note 1584 This function 'md5' has the same name as a native function +Note 1585 This function 'md5' has the same name as a native function SET SQL_MODE='IGNORE_SPACE'; select database(), database (); database() database () diff --git a/mysql-test/r/sp_gis.result b/mysql-test/r/sp_gis.result index b0960dec647..7a76507754f 100644 --- a/mysql-test/r/sp_gis.result +++ b/mysql-test/r/sp_gis.result @@ -7,11 +7,11 @@ return 1; create function x() returns int return 2; Warnings: -Note 1584 This function 'x' has the same name as a native function +Note 1585 This function 'x' has the same name as a native function create function y() returns int return 3; Warnings: -Note 1584 This function 'y' has the same name as a native function +Note 1585 This function 'y' has the same name as a native function select a(); a() 1 diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index a25183a0e6d..25df7a56aa3 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -4139,6 +4139,66 @@ SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=1) FROM t1; (SELECT SUM(t1.a) FROM t2 WHERE a=1) 3 DROP TABLE t1,t2; +CREATE TABLE t1 (a1 INT, a2 INT); +CREATE TABLE t2 (b1 INT, b2 INT); +INSERT INTO t1 VALUES (100, 200); +INSERT INTO t1 VALUES (101, 201); +INSERT INTO t2 VALUES (101, 201); +INSERT INTO t2 VALUES (103, 203); +SELECT ((a1,a2) IN (SELECT * FROM t2 WHERE b2 > 0)) IS NULL FROM t1; +((a1,a2) IN (SELECT * FROM t2 WHERE b2 > 0)) IS NULL +0 +0 +DROP TABLE t1, t2; +CREATE TABLE t1 (s1 BINARY(5), s2 VARBINARY(5)); +INSERT INTO t1 VALUES (0x41,0x41), (0x42,0x42), (0x43,0x43); +SELECT s1, s2 FROM t1 WHERE s2 IN (SELECT s1 FROM t1); +s1 s2 +SELECT s1, s2 FROM t1 WHERE (s2, 10) IN (SELECT s1, 10 FROM t1); +s1 s2 +CREATE INDEX I1 ON t1 (s1); +CREATE INDEX I2 ON t1 (s2); +SELECT s1, s2 FROM t1 WHERE s2 IN (SELECT s1 FROM t1); +s1 s2 +SELECT s1, s2 FROM t1 WHERE (s2, 10) IN (SELECT s1, 10 FROM t1); +s1 s2 +TRUNCATE t1; +INSERT INTO t1 VALUES (0x41,0x41); +SELECT * FROM t1 WHERE s1 = (SELECT s2 FROM t1); +s1 s2 +DROP TABLE t1; +CREATE TABLE t1 (a1 VARBINARY(2) NOT NULL DEFAULT '0', PRIMARY KEY (a1)); +CREATE TABLE t2 (a2 BINARY(2) default '0', INDEX (a2)); +CREATE TABLE t3 (a3 BINARY(2) default '0'); +INSERT INTO t1 VALUES (1),(2),(3),(4); +INSERT INTO t2 VALUES (1),(2),(3); +INSERT INTO t3 VALUES (1),(2),(3); +SELECT LEFT(t2.a2, 1) FROM t2,t3 WHERE t3.a3=t2.a2; +LEFT(t2.a2, 1) +1 +2 +3 +SELECT t1.a1, t1.a1 in (SELECT t2.a2 FROM t2,t3 WHERE t3.a3=t2.a2) FROM t1; +a1 t1.a1 in (SELECT t2.a2 FROM t2,t3 WHERE t3.a3=t2.a2) +1 0 +2 0 +3 0 +4 0 +DROP TABLE t1,t2,t3; +CREATE TABLE t1 (a1 BINARY(3) PRIMARY KEY, b1 VARBINARY(3)); +CREATE TABLE t2 (a2 VARBINARY(3) PRIMARY KEY); +CREATE TABLE t3 (a3 VARBINARY(3) PRIMARY KEY); +INSERT INTO t1 VALUES (1,10), (2,20), (3,30), (4,40); +INSERT INTO t2 VALUES (2), (3), (4), (5); +INSERT INTO t3 VALUES (10), (20), (30); +SELECT LEFT(t1.a1,1) FROM t1,t3 WHERE t1.b1=t3.a3; +LEFT(t1.a1,1) +1 +2 +3 +SELECT a2 FROM t2 WHERE t2.a2 IN (SELECT t1.a1 FROM t1,t3 WHERE t1.b1=t3.a3); +a2 +DROP TABLE t1, t2, t3; End of 5.0 tests. CREATE TABLE t1 (a int, b int); INSERT INTO t1 VALUES (2,22),(1,11),(2,22); diff --git a/mysql-test/r/symlink.result b/mysql-test/r/symlink.result index aba60f757c6..4eece9d5b5a 100644 --- a/mysql-test/r/symlink.result +++ b/mysql-test/r/symlink.result @@ -99,6 +99,12 @@ t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; +CREATE TABLE t1(a INT) +DATA DIRECTORY='TEST_DIR/master-data/mysql' +INDEX DIRECTORY='TEST_DIR/master-data/mysql'; +RENAME TABLE t1 TO user; +ERROR HY000: Can't create/write to file 'TEST_DIR/master-data/mysql/user.MYI' (Errcode: 17) +DROP TABLE t1; show create table t1; Table Create Table t1 CREATE TABLE `t1` ( diff --git a/mysql-test/r/trigger.result b/mysql-test/r/trigger.result index 189722bfe9b..47ffc90e3cd 100644 --- a/mysql-test/r/trigger.result +++ b/mysql-test/r/trigger.result @@ -1978,3 +1978,9 @@ a 1 drop table table_25411_a; drop table table_25411_b; +DROP TRIGGER IF EXISTS trg; +Warnings: +Note 1360 Trigger does not exist +SHOW CREATE TRIGGER trg; +ERROR HY000: Trigger does not exist +End of 5.1 tests. diff --git a/mysql-test/r/type_decimal.result b/mysql-test/r/type_decimal.result index 42276a004bb..e37a398d22e 100644 --- a/mysql-test/r/type_decimal.result +++ b/mysql-test/r/type_decimal.result @@ -812,4 +812,81 @@ select group_concat(f1),group_concat(f2) from t1; group_concat(f1) group_concat(f2) -0.123456 0.123456 drop table t1; +create table t1 ( +ua_id decimal(22,0) not null, +ua_invited_by_id decimal(22,0) default NULL, +primary key(ua_id) +); +insert into t1 values (123, NULL), (456, NULL); +this must not produce error 1048: +select * from t1 where ua_invited_by_id not in (select ua_id from t1); +ua_id ua_invited_by_id +drop table t1; +DROP TABLE IF EXISTS t3; +DROP TABLE IF EXISTS t4; +CREATE TABLE t1( a NUMERIC, b INT ); +INSERT INTO t1 VALUES (123456, 40), (123456, 40); +SELECT TRUNCATE( a, b ) AS c FROM t1 ORDER BY c; +c +123456 +123456 +SELECT ROUND( a, b ) AS c FROM t1 ORDER BY c; +c +123456 +123456 +SELECT ROUND( a, 100 ) AS c FROM t1 ORDER BY c; +c +123456.000000000000000000000000000000 +123456.000000000000000000000000000000 +CREATE TABLE t2( a NUMERIC, b INT ); +INSERT INTO t2 VALUES (123456, 100); +SELECT TRUNCATE( a, b ) AS c FROM t2 ORDER BY c; +c +123456 +SELECT ROUND( a, b ) AS c FROM t2 ORDER BY c; +c +123456 +CREATE TABLE t3( a DECIMAL, b INT ); +INSERT INTO t3 VALUES (123456, 40), (123456, 40); +SELECT TRUNCATE( a, b ) AS c FROM t3 ORDER BY c; +c +123456 +123456 +SELECT ROUND( a, b ) AS c FROM t3 ORDER BY c; +c +123456 +123456 +SELECT ROUND( a, 100 ) AS c FROM t3 ORDER BY c; +c +123456.000000000000000000000000000000 +123456.000000000000000000000000000000 +CREATE TABLE t4( a DECIMAL, b INT ); +INSERT INTO t4 VALUES (123456, 40), (123456, 40); +SELECT TRUNCATE( a, b ) AS c FROM t4 ORDER BY c; +c +123456 +123456 +SELECT ROUND( a, b ) AS c FROM t4 ORDER BY c; +c +123456 +123456 +SELECT ROUND( a, 100 ) AS c FROM t4 ORDER BY c; +c +123456.000000000000000000000000000000 +123456.000000000000000000000000000000 +delete from t1; +INSERT INTO t1 VALUES (1234567890, 20), (999.99, 5); +Warnings: +Note 1265 Data truncated for column 'a' at row 2 +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` decimal(10,0) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +select round(a,b) as c from t1 order by c; +c +1000 +1234567890 +DROP TABLE t1, t2, t3, t4; End of 5.0 tests diff --git a/mysql-test/r/type_ranges.result b/mysql-test/r/type_ranges.result index 149f0d2dca5..6e08067d8a4 100644 --- a/mysql-test/r/type_ranges.result +++ b/mysql-test/r/type_ranges.result @@ -57,7 +57,7 @@ ushort smallint(5) unsigned zerofill NULL NO MUL 00000 # umedium mediumint(8) unsigned NULL NO MUL 0 # ulong int(11) unsigned NULL NO MUL 0 # ulonglong bigint(13) unsigned NULL NO MUL 0 # -time_stamp timestamp NULL NO CURRENT_TIMESTAMP # +time_stamp timestamp NULL NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP # date_field date NULL YES NULL # time_field time NULL YES NULL # date_time datetime NULL YES NULL # @@ -225,7 +225,7 @@ ushort smallint(5) unsigned zerofill NULL NO 00000 # umedium mediumint(8) unsigned NULL NO MUL 0 # ulong int(11) unsigned NULL NO MUL 0 # ulonglong bigint(13) unsigned NULL NO MUL 0 # -time_stamp timestamp NULL NO CURRENT_TIMESTAMP # +time_stamp timestamp NULL NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP # date_field char(10) latin1_swedish_ci YES NULL # time_field time NULL YES NULL # date_time datetime NULL YES NULL # diff --git a/mysql-test/r/type_timestamp.result b/mysql-test/r/type_timestamp.result index 7caf7e78fe9..596dcbf432c 100644 --- a/mysql-test/r/type_timestamp.result +++ b/mysql-test/r/type_timestamp.result @@ -251,7 +251,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 show columns from t1; Field Type Null Key Default Extra -t1 timestamp NO 2003-01-01 00:00:00 +t1 timestamp NO 2003-01-01 00:00:00 on update CURRENT_TIMESTAMP t2 datetime YES NULL drop table t1; create table t1 (t1 timestamp default now() on update now(), t2 datetime); @@ -276,7 +276,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 show columns from t1; Field Type Null Key Default Extra -t1 timestamp NO CURRENT_TIMESTAMP +t1 timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP t2 datetime YES NULL drop table t1; create table t1 (t1 timestamp, t2 datetime, t3 timestamp); @@ -302,7 +302,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 show columns from t1; Field Type Null Key Default Extra -t1 timestamp NO CURRENT_TIMESTAMP +t1 timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP t2 datetime YES NULL t3 timestamp NO 0000-00-00 00:00:00 drop table t1; @@ -328,7 +328,7 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 show columns from t1; Field Type Null Key Default Extra -t1 timestamp NO CURRENT_TIMESTAMP +t1 timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP t2 datetime YES NULL truncate table t1; insert into t1 values ('2004-04-01 00:00:00', '2004-04-01 00:00:00'); diff --git a/mysql-test/r/xml.result b/mysql-test/r/xml.result index 552f4896698..d98173dbe15 100644 --- a/mysql-test/r/xml.result +++ b/mysql-test/r/xml.result @@ -647,32 +647,32 @@ select extractValue('<a>a','/a'); extractValue('<a>a','/a') NULL Warnings: -Warning 1524 Incorrect XML value: 'parse error at line 1 pos 5: unexpected END-OF-INPUT' +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 5: unexpected END-OF-INPUT' select extractValue('<a>a<','/a'); extractValue('<a>a<','/a') NULL Warnings: -Warning 1524 Incorrect XML value: 'parse error at line 1 pos 6: END-OF-INPUT unexpected (ident or '/' wanted)' +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 6: END-OF-INPUT unexpected (ident or '/' wanted)' select extractValue('<a>a</','/a'); extractValue('<a>a</','/a') NULL Warnings: -Warning 1524 Incorrect XML value: 'parse error at line 1 pos 7: END-OF-INPUT unexpected (ident wanted)' +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 7: END-OF-INPUT unexpected (ident wanted)' select extractValue('<a>a</a','/a'); extractValue('<a>a</a','/a') NULL Warnings: -Warning 1524 Incorrect XML value: 'parse error at line 1 pos 8: END-OF-INPUT unexpected ('>' wanted)' +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 8: END-OF-INPUT unexpected ('>' wanted)' select extractValue('<a>a</a></b>','/a'); extractValue('<a>a</a></b>','/a') NULL Warnings: -Warning 1524 Incorrect XML value: 'parse error at line 1 pos 12: '</b>' unexpected (END-OF-INPUT wanted)' +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 12: '</b>' unexpected (END-OF-INPUT wanted)' select extractValue('<a b=>a</a>','/a'); extractValue('<a b=>a</a>','/a') NULL Warnings: -Warning 1524 Incorrect XML value: 'parse error at line 1 pos 7: '>' unexpected (ident or string wanted)' +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 7: '>' unexpected (ident or string wanted)' select extractValue('<e>1</e>','position()'); ERROR HY000: XPATH syntax error: '' select extractValue('<e>1</e>','last()'); @@ -723,17 +723,17 @@ select extractValue('<zot><tim0><01>10:39:15</01><02>140</02></tim0></zot>','//* extractValue('<zot><tim0><01>10:39:15</01><02>140</02></tim0></zot>','//*') NULL Warnings: -Warning 1524 Incorrect XML value: 'parse error at line 1 pos 13: unknown token unexpected (ident or '/' wanted)' +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 13: unknown token unexpected (ident or '/' wanted)' select extractValue('<.>test</.>','//*'); extractValue('<.>test</.>','//*') NULL Warnings: -Warning 1524 Incorrect XML value: 'parse error at line 1 pos 2: unknown token unexpected (ident or '/' wanted)' +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 2: unknown token unexpected (ident or '/' wanted)' select extractValue('<->test</->','//*'); extractValue('<->test</->','//*') NULL Warnings: -Warning 1524 Incorrect XML value: 'parse error at line 1 pos 2: unknown token unexpected (ident or '/' wanted)' +Warning 1525 Incorrect XML value: 'parse error at line 1 pos 2: unknown token unexpected (ident or '/' wanted)' select extractValue('<:>test</:>','//*'); extractValue('<:>test</:>','//*') test diff --git a/mysql-test/std_data/corrupt-relay-bin.000624 b/mysql-test/std_data/corrupt-relay-bin.000624 Binary files differnew file mode 100644 index 00000000000..21b4901211c --- /dev/null +++ b/mysql-test/std_data/corrupt-relay-bin.000624 diff --git a/mysql-test/suite/binlog/r/binlog_database.result b/mysql-test/suite/binlog/r/binlog_database.result new file mode 100644 index 00000000000..7deffb86244 --- /dev/null +++ b/mysql-test/suite/binlog/r/binlog_database.result @@ -0,0 +1,56 @@ +set binlog_format=statement; +reset master; +create database testing_1; +use testing_1; +create table t1 (a int); +create function sf1 (a int) returns int return a+1; +create trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a); +create procedure sp1 (a int) insert into t1 values(a); +drop database testing_1; +show binlog events from <binlog_start>; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Query # # create database testing_1 +master-bin.000001 # Query # # use `testing_1`; create table t1 (a int) +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` function sf1 (a int) returns int return a+1 +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a) +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` procedure sp1 (a int) insert into t1 values(a) +master-bin.000001 # Query # # drop database testing_1 +set binlog_format=mixed; +reset master; +create database testing_1; +use testing_1; +create table t1 (a int); +create function sf1 (a int) returns int return a+1; +create trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a); +create procedure sp1 (a int) insert into t1 values(a); +drop database testing_1; +show binlog events from <binlog_start>; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Query # # create database testing_1 +master-bin.000001 # Query # # use `testing_1`; create table t1 (a int) +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` function sf1 (a int) returns int return a+1 +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a) +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` procedure sp1 (a int) insert into t1 values(a) +master-bin.000001 # Query # # drop database testing_1 +set binlog_format=row; +reset master; +create database testing_1; +use testing_1; +create table t1 (a int); +create function sf1 (a int) returns int return a+1; +create trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a); +create procedure sp1 (a int) insert into t1 values(a); +drop database testing_1; +show binlog events from <binlog_start>; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Query # # create database testing_1 +master-bin.000001 # Query # # use `testing_1`; create table t1 (a int) +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` function sf1 (a int) returns int return a+1 +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` trigger tr1 before insert on t1 for each row insert into t2 values (2*new.a) +master-bin.000001 # Query # # use `testing_1`; CREATE DEFINER=`root`@`localhost` procedure sp1 (a int) insert into t1 values(a) +master-bin.000001 # Query # # drop database testing_1 +show databases; +Database +information_schema +mysql +test diff --git a/mysql-test/suite/binlog/t/binlog_database.test b/mysql-test/suite/binlog/t/binlog_database.test new file mode 100644 index 00000000000..ee236b4e5ea --- /dev/null +++ b/mysql-test/suite/binlog/t/binlog_database.test @@ -0,0 +1,12 @@ +# A wrapper to test that dropping a database is binlogged +# correctly. We test all three modes in the same file to avoid +# unecessary server restarts. + +set binlog_format=statement; +source extra/binlog_tests/database.test; +set binlog_format=mixed; +source extra/binlog_tests/database.test; +set binlog_format=row; +source extra/binlog_tests/database.test; + +show databases; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_master.inc b/mysql-test/suite/funcs_1/datadict/datadict_master.inc index ee94f7cb318..73a23d6d377 100644 --- a/mysql-test/suite/funcs_1/datadict/datadict_master.inc +++ b/mysql-test/suite/funcs_1/datadict/datadict_master.inc @@ -199,7 +199,7 @@ select s.catalog_name, s.schema_name, s.default_character_set_name, --source suite/funcs_1/datadict/datadict_bug_12777.inc select * from columns; select * from character_sets; -select sum(id) from collations; +select sum(id) from collations where collation_name <> 'utf8_general_cs'; select collation_name, character_set_name into @x,@y from collation_character_set_applicability limit 1; select @x, @y; @@ -1660,13 +1660,14 @@ connect (u_6_401017, localhost, u_6_401017, , test); use information_schema; -select * from collation_character_set_applicability; +select * from collation_character_set_applicability +where collation_name <> 'utf8_general_cs'; select * from schemata; select table_name from tables; --source suite/funcs_1/datadict/datadict_bug_12777.inc select table_name, column_name, column_type from columns; select character_set_name from character_sets; -select collation_name from collations; +select collation_name from collations where collation_name <> 'utf8_general_cs'; select routine_name, routine_type from routines; select table_name, index_name from statistics; select table_name from views; @@ -1926,7 +1927,7 @@ let $message= Testcase 3.2.3.2:; # the USAGE privilege. ################################################################################ -SELECT * FROM collations; +SELECT * FROM collations where collation_name <> 'utf8_general_cs'; # ------------------------------------------------------------------------------------------------------- let $message= Testcase 3.2.3.3:; @@ -1973,7 +1974,8 @@ let $message= Testcase 3.2.4.2:; # and update with expected results afterwards. ################################################################################ -SELECT * FROM collation_character_set_applicability; +SELECT * FROM collation_character_set_applicability +where collation_name <> 'utf8_general_cs'; # ------------------------------------------------------------------------------------------------------- let $message= Testcase 3.2.4.3:; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc b/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc index 260119f030f..35060cefbf8 100644 --- a/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc +++ b/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc @@ -35,8 +35,9 @@ eval select table_name, index_schema, index_name, index_type where table_schema like '$dbname%'; --replace_result $SERVER_NAME <SERVER_NAME> +--sorted_result eval select * - from information_schema.user_privileges order by grantee, privilege_type; + from information_schema.user_privileges; # where grantee="'u_6_401013'@'%'"; eval select * diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables.inc index 14e39c083b0..9712f0a9c1c 100644 --- a/mysql-test/suite/funcs_1/datadict/datadict_tables.inc +++ b/mysql-test/suite/funcs_1/datadict/datadict_tables.inc @@ -28,8 +28,8 @@ eval $dd_part1 tables $dd_part2; --source suite/funcs_1/datadict/datadict_bug_12777.inc eval $dd_part1 columns $dd_part2; eval $dd_part1 character_sets $dd_part2; -eval $dd_part1 collations $dd_part2; -eval $dd_part1 collation_character_set_applicability $dd_part2; +eval $dd_part1 collations where collation_name <> 'utf8_general_cs' $dd_part2; +eval $dd_part1 collation_character_set_applicability where collation_name <> 'utf8_general_cs' $dd_part2; --replace_column 16 <Created> 17 <Last_Altered> eval $dd_part1 routines $dd_part2; eval $dd_part1 statistics $dd_part2; diff --git a/mysql-test/suite/funcs_1/datadict/processlist_val.inc b/mysql-test/suite/funcs_1/datadict/processlist_val.inc index da2c2950095..62e5d95f875 100644 --- a/mysql-test/suite/funcs_1/datadict/processlist_val.inc +++ b/mysql-test/suite/funcs_1/datadict/processlist_val.inc @@ -94,14 +94,25 @@ connect (ddicttestuser1,localhost,ddicttestuser1,ddictpass,information_schema); --echo ----- switch to connection default (user = root) ----- connection default; # - We have now a second connection. -# - important values in second connection +# First working phase for this connection is "Connect". +# This is a very short phase and the likelihood to meet it is +# - nearly zero on average boxes with low parallel load +# - around some percent on weak or overloaded boxes +# (Bug#32153 Status output differs - scheduling ?) +# Therefore we poll till we reach the long lasting phase with: # - USER = ddicttestuser1 # - HOST = 'localhost' # - DB = 'information_schema' # - Command = 'Sleep' -# - TIME = 0, I hope the testing machines are all time fast enough +# - TIME >= 0 Overloaded boxes can cause that we do not hit TIME = 0. # - State IS NULL # - INFO must be empty +# +let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE COMMAND = 'Sleep' AND TIME > 0; +--source include/wait_condition.inc +# +# Expect to hit TIME = 1. --replace_column 1 <ID> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; # Change the SQL command (affects content of INFO) @@ -109,25 +120,19 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; SHOW FULL PROCESSLIST; # --echo # Sleep some time -# The value of TIME must increase after some sleeps. -# So poll till TIME changes. -let $run= 10; -while ($run) -{ - dec $run; - if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE ID = @my_proclist_id + 1 AND TIME > 0`) - { - let $run= 0; - } - --real_sleep 0.2 -} -# Either we have now reached TIME = 1 or we fail with unexpected result. -# Expect to see now TIME = 1 +# The value of TIME must increase and reach 2 after some sleeps. +let $wait_timeout= 2; +let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE TIME > 1; +--source include/wait_condition.inc +# +# Expect to hit TIME = 2. --replace_column 1 <ID> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; --replace_column 1 <ID> SHOW FULL PROCESSLIST; +# +# # The second connection must have an ID = my ID + 1; SELECT ID = @my_proclist_id + 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'ddicttestuser1'; @@ -150,6 +155,12 @@ SHOW FULL PROCESSLIST; --echo --echo ----- establish connection con2 (user = ddicttestuser1) ------ connect (con2,localhost,ddicttestuser1,ddictpass,information_schema); +# +# If the testing box is under heavy load we might see connection ddicttestuser1 +# within the short phase INFO = 'SHOW FULL PROCESSLIST' and STATE = 'Writing to net'. +let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE COMMAND = 'Sleep'; +--source include/wait_condition.inc --replace_column 1 <ID> 6 <TIME> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; --replace_column 1 <ID> 6 <TIME> @@ -183,24 +194,17 @@ connection default; # - USER = ddicttestuser1 # - HOST = 'localhost' # - DB = 'information_schema' -# - Command = 'Query' +# - Command = 'Query'(run without --ps-protocol)/'Execute' (run --ps-protocol) # - TIME = 1, Attention: check with TIME = 0 is not stable # - State IS NULL # - INFO = "SELECT sleep(2.5),'Command time'" --echo # Sleep some time -# The command must be at some time in work by the server. +# The command must be after some time in work by the server. # So poll till INFO is no more NULL and TIME > 0. -let $run= 10; -while ($run) -{ - dec $run; - if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE INFO IS NOT NULL AND TIME > 0`) - { - let $run= 0; - } - --real_sleep 0.2 -} +let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE INFO IS NOT NULL AND TIME > 0; +--source include/wait_condition.inc +# # Expect to see TIME = 1 --replace_column 1 <ID> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; @@ -208,20 +212,13 @@ SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; SHOW FULL PROCESSLIST; # --echo # Sleep some time -# The value of TIME must increase after some sleeps therefore -# poll till TIME changes -let $run= 10; -while ($run) -{ - dec $run; - if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE ID = @my_proclist_id + 1 AND TIME > 1`) - { - let $run= 0; - } - --real_sleep 0.2 -} -# Either we have now reached TIME = 2 or we fail with unexpected result. +# The value of TIME must increase and reach 2 after some sleeps. +let $wait_timeout= 2; +let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE TIME > 1; +--source include/wait_condition.inc +# +# Expect to see TIME = 2 --replace_column 1 <ID> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; --replace_column 1 <ID> @@ -248,19 +245,14 @@ send SELECT sleep(2),'BEGIN this is the representative of a very long statement. --echo ----- switch to connection default (user = root) ----- connection default; --echo # Sleep some time -# The command must be at some time in work by the server. -# So poll till INFO is no more NULL. -let $run= 10; -while ($run) -{ - dec $run; - if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE INFO IS NOT NULL`) - { - let $run= 0; - } - --real_sleep 0.2 -} +# The command must be after some time in work by the server. +# There is a short phase with STATE IS NULL followed by a longer phase +# with STATE = 'init'. +# So poll till INFO is no more NULL AND STATE = 'init'. +let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE INFO IS NOT NULL AND STATE = 'init'; +--source include/wait_condition.inc +# # Expect to see that SELECT/SHOW PROCESSLIST can handle my statement monster. --replace_column 1 <ID> 6 <TIME> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; @@ -295,19 +287,12 @@ send SELECT COUNT(*) FROM test.t1; --echo ----- switch to connection default (user = root) ----- connection default; --echo # Sleep some time -# The command must be at some time in work by the server. +# The command must be after some time in work by the server. # So poll till INFO is no more NULL. -let $run= 10; -while ($run) -{ - dec $run; - if (`SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST - WHERE INFO IS NOT NULL`) - { - let $run= 0; - } - --real_sleep 0.2 -} +let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST + WHERE INFO IS NOT NULL AND STATE = 'Locked'; +--source include/wait_condition.inc +# # Expect to see the state 'Locked' for the second connection because the SELECT # collides with the WRITE TABLE LOCK. --replace_column 1 <ID> 6 <TIME> diff --git a/mysql-test/suite/funcs_1/r/a_processlist_val_no_prot.result b/mysql-test/suite/funcs_1/r/a_processlist_val_no_prot.result index 9a7c9805b66..967c157f535 100644 --- a/mysql-test/suite/funcs_1/r/a_processlist_val_no_prot.result +++ b/mysql-test/suite/funcs_1/r/a_processlist_val_no_prot.result @@ -45,21 +45,21 @@ SELECT ID INTO @my_proclist_id FROM INFORMATION_SCHEMA.PROCESSLIST; ----- switch to connection default (user = root) ----- SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; ID USER HOST DB COMMAND TIME STATE INFO -<ID> ddicttestuser1 localhost information_schema Sleep 0 NULL +<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL <ID> root localhost information_schema Query 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST SHOW FULL PROCESSLIST; Id User Host db Command Time State Info <ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST -<ID> ddicttestuser1 localhost information_schema Sleep 0 NULL +<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL # Sleep some time SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; ID USER HOST DB COMMAND TIME STATE INFO -<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL +<ID> ddicttestuser1 localhost information_schema Sleep 2 NULL <ID> root localhost information_schema Query 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST SHOW FULL PROCESSLIST; Id User Host db Command Time State Info <ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST -<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL +<ID> ddicttestuser1 localhost information_schema Sleep 2 NULL SELECT ID = @my_proclist_id + 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'ddicttestuser1'; ID = @my_proclist_id + 1 diff --git a/mysql-test/suite/funcs_1/r/b_processlist_val_ps.result b/mysql-test/suite/funcs_1/r/b_processlist_val_ps.result index db0a7750077..b4d8095125a 100644 --- a/mysql-test/suite/funcs_1/r/b_processlist_val_ps.result +++ b/mysql-test/suite/funcs_1/r/b_processlist_val_ps.result @@ -45,21 +45,21 @@ SELECT ID INTO @my_proclist_id FROM INFORMATION_SCHEMA.PROCESSLIST; ----- switch to connection default (user = root) ----- SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; ID USER HOST DB COMMAND TIME STATE INFO -<ID> ddicttestuser1 localhost information_schema Sleep 0 NULL +<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL <ID> root localhost information_schema Execute 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST SHOW FULL PROCESSLIST; Id User Host db Command Time State Info <ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST -<ID> ddicttestuser1 localhost information_schema Sleep 0 NULL +<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL # Sleep some time SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; ID USER HOST DB COMMAND TIME STATE INFO -<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL +<ID> ddicttestuser1 localhost information_schema Sleep 2 NULL <ID> root localhost information_schema Execute 0 preparing SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST SHOW FULL PROCESSLIST; Id User Host db Command Time State Info <ID> root localhost information_schema Query 0 NULL SHOW FULL PROCESSLIST -<ID> ddicttestuser1 localhost information_schema Sleep 1 NULL +<ID> ddicttestuser1 localhost information_schema Sleep 2 NULL SELECT ID = @my_proclist_id + 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'ddicttestuser1'; ID = @my_proclist_id + 1 diff --git a/mysql-test/suite/funcs_1/r/innodb__datadict.result b/mysql-test/suite/funcs_1/r/innodb__datadict.result index b105e00caf7..76e699614c8 100644 --- a/mysql-test/suite/funcs_1/r/innodb__datadict.result +++ b/mysql-test/suite/funcs_1/r/innodb__datadict.result @@ -2268,7 +2268,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -2567,7 +2567,7 @@ NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PR NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references @@ -2598,7 +2598,7 @@ NULL mysql event definer 4 NO char 77 231 NULL NULL utf8 utf8_bin char(77) se NULL mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event interval_value 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql event interval_field 7 NULL YES enum 18 54 NULL NULL utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') select,insert,update,references -NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql event modified 9 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql event last_executed 10 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event starts 11 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references @@ -2617,12 +2617,12 @@ NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI sel NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql general_log user_host 2 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references -NULL mysql general_log thread_id 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log server_id 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log command_type 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL mysql general_log argument 6 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references +NULL mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log command_type 5 NULL NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references +NULL mysql general_log argument 6 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references @@ -2675,10 +2675,10 @@ NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8 NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references +NULL mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references @@ -2693,7 +2693,7 @@ NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin cha NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql servers Server_name 1 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references NULL mysql servers Host 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Db 3 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references @@ -2703,23 +2703,23 @@ NULL mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL int(4) select,inse NULL mysql servers Socket 7 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Wrapper 8 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Owner 9 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql slow_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql slow_log query_time 3 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log lock_time 4 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log rows_sent 5 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log rows_examined 6 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log db 7 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references -NULL mysql slow_log last_insert_id 8 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log insert_id 9 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log server_id 10 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log db 7 NULL NO varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references +NULL mysql slow_log last_insert_id 8 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log insert_id 9 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log server_id 10 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log sql_text 11 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql tables_priv Table_priv 7 NO set 98 294 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') select,insert,update,references NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references @@ -3031,7 +3031,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -3139,9 +3139,9 @@ binary binary Binary pseudo charset 1 geostd8 geostd8_general_ci GEOSTD8 Georgian 1 cp932 cp932_japanese_ci SJIS for Windows Japanese 2 eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 -select sum(id) from collations; +select sum(id) from collations where collation_name <> 'utf8_general_cs'; sum(id) -11094 +10840 select collation_name, character_set_name into @x,@y from collation_character_set_applicability limit 1; select @x, @y; @@ -3201,8 +3201,16 @@ NULL mysql user 0 mysql PRIMARY 2 User A 3 NULL NULL BTREE select * from views; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION NULL db_datadict v1 SELECT * FROM information_schema.tables NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu SELECT DISTINCT u, NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu1 SELECT grantee AS u NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu SELECT DISTINCT u, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3 ) +AS server, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3, +LENGTH( SUBSTRING( u, +LENGTH( SUBSTRING_INDEX(u, '@',1)) +3 )) - 1 ) +AS Server_Clean +FROM db_datadict.vu1 NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu1 SELECT grantee AS u +FROM information_schema.user_privileges NONE NO root@localhost DEFINER latin1 latin1_swedish_ci select * from user_privileges order by grantee, privilege_type; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES @@ -3602,10 +3610,10 @@ NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 N SELECT * FROM character_sets LIMIT 1; CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN big5 big5_chinese_ci Big5 Traditional Chinese 2 -SELECT * FROM collations LIMIT 1; +SELECT * FROM collations where collation_name <> 'utf8_general_cs' LIMIT 1; COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN big5_chinese_ci big5 1 Yes Yes 1 -SELECT * FROM collation_character_set_applicability LIMIT 1; +SELECT * FROM collation_character_set_applicability where collation_name <> 'utf8_general_cs' LIMIT 1; COLLATION_NAME CHARACTER_SET_NAME big5_chinese_ci big5 SELECT * FROM routines LIMIT 1; @@ -5528,8 +5536,16 @@ NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE select * from information_schema.views limit 0, 5; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION NULL db_datadict v1 SELECT * FROM information_schema.tables NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu SELECT DISTINCT u, NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu1 SELECT grantee AS u NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu SELECT DISTINCT u, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3 ) +AS server, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3, +LENGTH( SUBSTRING( u, +LENGTH( SUBSTRING_INDEX(u, '@',1)) +3 )) - 1 ) +AS Server_Clean +FROM db_datadict.vu1 NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu1 SELECT grantee AS u +FROM information_schema.user_privileges NONE NO root@localhost DEFINER latin1 latin1_swedish_ci select * from information_schema.user_privileges limit 0, 5; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'localhost' NULL SELECT YES @@ -5580,12 +5596,12 @@ COUNT(*) SELECT COUNT(*) FROM information_schema. character_sets ; COUNT(*) 36 -SELECT COUNT(*) FROM information_schema. collations ; +SELECT COUNT(*) FROM information_schema. collations where collation_name <> 'utf8_general_cs' ; COUNT(*) -128 -SELECT COUNT(*) FROM information_schema. collation_character_set_applicability ; +127 +SELECT COUNT(*) FROM information_schema. collation_character_set_applicability where collation_name <> 'utf8_general_cs' ; COUNT(*) -129 +128 SELECT COUNT(*) FROM information_schema. routines ; COUNT(*) 1 @@ -7338,7 +7354,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7489,7 +7505,7 @@ where table_schema like 'db_datadict%'; table_name index_schema index_name index_type res_t_401013 db_datadict i_6_401013 BTREE select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7626,7 +7642,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7775,7 +7791,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7920,7 +7936,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -8078,7 +8094,7 @@ where table_schema like 'db_datadict%'; table_name index_schema index_name index_type res_t_401015 db_datadict i_6_401015 BTREE select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -8214,7 +8230,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -8464,7 +8480,8 @@ ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_ FLUSH PRIVILEGES; connect(localhost,u_6_401017,,test,MYSQL_PORT,MYSQL_SOCK); use information_schema; -select * from collation_character_set_applicability; +select * from collation_character_set_applicability +where collation_name <> 'utf8_general_cs'; COLLATION_NAME CHARACTER_SET_NAME big5_chinese_ci big5 big5_bin big5 @@ -8542,7 +8559,6 @@ utf8_roman_ci utf8 utf8_persian_ci utf8 utf8_esperanto_ci utf8 utf8_hungarian_ci utf8 -utf8_general_cs utf8 ucs2_general_ci ucs2 ucs2_bin ucs2 ucs2_unicode_ci ucs2 @@ -8671,7 +8687,7 @@ COLUMNS CHARACTER_SET_NAME varchar(64) COLUMNS COLLATION_NAME varchar(64) COLUMNS COLUMN_TYPE longtext COLUMNS COLUMN_KEY varchar(3) -COLUMNS EXTRA varchar(20) +COLUMNS EXTRA varchar(27) COLUMNS PRIVILEGES varchar(80) COLUMNS COLUMN_COMMENT varchar(255) COLUMN_PRIVILEGES GRANTEE varchar(81) @@ -9247,7 +9263,7 @@ binary geostd8 cp932 eucjpms -select collation_name from collations; +select collation_name from collations where collation_name <> 'utf8_general_cs'; collation_name big5_chinese_ci big5_bin @@ -9324,7 +9340,6 @@ utf8_roman_ci utf8_persian_ci utf8_esperanto_ci utf8_hungarian_ci -utf8_general_cs ucs2_general_ci ucs2_bin ucs2_unicode_ci @@ -9613,7 +9628,7 @@ NULL information_schema collations SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NUL Testcase 3.2.3.2: -------------------------------------------------------------------------------- -SELECT * FROM collations; +SELECT * FROM collations where collation_name <> 'utf8_general_cs'; COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN big5_chinese_ci big5 1 Yes Yes 1 big5_bin big5 84 Yes 1 @@ -9690,7 +9705,6 @@ utf8_roman_ci utf8 207 Yes 8 utf8_persian_ci utf8 208 Yes 8 utf8_esperanto_ci utf8 209 Yes 8 utf8_hungarian_ci utf8 210 Yes 8 -utf8_general_cs utf8 254 Yes 1 ucs2_general_ci ucs2 35 Yes Yes 1 ucs2_bin ucs2 90 Yes 1 ucs2_unicode_ci ucs2 128 Yes 8 @@ -9776,7 +9790,8 @@ NULL information_schema collation_character_set_applicability CHARACTER_SET_NAME Testcase 3.2.4.2: -------------------------------------------------------------------------------- -SELECT * FROM collation_character_set_applicability; +SELECT * FROM collation_character_set_applicability +where collation_name <> 'utf8_general_cs'; COLLATION_NAME CHARACTER_SET_NAME big5_chinese_ci big5 big5_bin big5 @@ -9854,7 +9869,6 @@ utf8_roman_ci utf8 utf8_persian_ci utf8 utf8_esperanto_ci utf8 utf8_hungarian_ci utf8 -utf8_general_cs utf8 ucs2_general_ci ucs2 ucs2_bin ucs2 ucs2_unicode_ci ucs2 @@ -10092,7 +10106,7 @@ CHARACTER_SET_NAME varchar(64) YES NULL COLLATION_NAME varchar(64) YES NULL COLUMN_TYPE longtext NO NULL COLUMN_KEY varchar(3) NO -EXTRA varchar(20) NO +EXTRA varchar(27) NO PRIVILEGES varchar(80) NO COLUMN_COMMENT varchar(255) NO SHOW CREATE TABLE columns; @@ -10114,7 +10128,7 @@ COLUMNS CREATE TEMPORARY TABLE `COLUMNS` ( `COLLATION_NAME` varchar(64) DEFAULT NULL, `COLUMN_TYPE` longtext NOT NULL, `COLUMN_KEY` varchar(3) NOT NULL DEFAULT '', - `EXTRA` varchar(20) NOT NULL DEFAULT '', + `EXTRA` varchar(27) NOT NULL DEFAULT '', `PRIVILEGES` varchar(80) NOT NULL DEFAULT '', `COLUMN_COMMENT` varchar(255) NOT NULL DEFAULT '' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 @@ -10145,7 +10159,7 @@ NULL information_schema columns CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema columns COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema columns COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema columns COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema columns EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema columns EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema columns PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema columns COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select @@ -10200,7 +10214,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -10474,7 +10488,7 @@ NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PR NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references @@ -10505,7 +10519,7 @@ NULL mysql event definer 4 NO char 77 231 NULL NULL utf8 utf8_bin char(77) se NULL mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event interval_value 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql event interval_field 7 NULL YES enum 18 54 NULL NULL utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') select,insert,update,references -NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql event modified 9 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql event last_executed 10 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event starts 11 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references @@ -10524,12 +10538,12 @@ NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI sel NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql general_log user_host 2 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references -NULL mysql general_log thread_id 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log server_id 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log command_type 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL mysql general_log argument 6 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references +NULL mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log command_type 5 NULL NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references +NULL mysql general_log argument 6 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references @@ -10582,10 +10596,10 @@ NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8 NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references +NULL mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references @@ -10600,7 +10614,7 @@ NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin cha NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql servers Server_name 1 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references NULL mysql servers Host 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Db 3 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references @@ -10610,23 +10624,23 @@ NULL mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL int(4) select,inse NULL mysql servers Socket 7 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Wrapper 8 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Owner 9 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql slow_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql slow_log query_time 3 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log lock_time 4 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log rows_sent 5 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log rows_examined 6 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log db 7 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references -NULL mysql slow_log last_insert_id 8 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log insert_id 9 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log server_id 10 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log db 7 NULL NO varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references +NULL mysql slow_log last_insert_id 8 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log insert_id 9 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log server_id 10 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log sql_text 11 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql tables_priv Table_priv 7 NO set 98 294 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') select,insert,update,references NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references @@ -10938,7 +10952,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -11042,7 +11056,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -11567,7 +11581,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -11614,7 +11628,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -12139,7 +12153,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -12284,7 +12298,7 @@ NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint( 3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) 1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext 3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20) +3.0000 information_schema COLUMNS EXTRA varchar 27 81 utf8 utf8_general_ci varchar(27) 3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80) 3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255) 3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) @@ -12666,7 +12680,7 @@ NULL mysql ndb_binlog_index schemaops bigint NULL NULL NULL NULL bigint(20) unsi 3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO') 3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER') 1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob -3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64) +1.0000 mysql proc returns longblob 4294967295 4294967295 NULL NULL longblob 1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob 3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77) NULL mysql proc created timestamp NULL NULL NULL NULL timestamp diff --git a/mysql-test/suite/funcs_1/r/memory__datadict.result b/mysql-test/suite/funcs_1/r/memory__datadict.result index af0673a393b..0a7c7f20437 100644 --- a/mysql-test/suite/funcs_1/r/memory__datadict.result +++ b/mysql-test/suite/funcs_1/r/memory__datadict.result @@ -2266,7 +2266,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -2565,7 +2565,7 @@ NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PR NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references @@ -2596,7 +2596,7 @@ NULL mysql event definer 4 NO char 77 231 NULL NULL utf8 utf8_bin char(77) se NULL mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event interval_value 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql event interval_field 7 NULL YES enum 18 54 NULL NULL utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') select,insert,update,references -NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql event modified 9 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql event last_executed 10 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event starts 11 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references @@ -2615,12 +2615,12 @@ NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI sel NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql general_log user_host 2 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references -NULL mysql general_log thread_id 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log server_id 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log command_type 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL mysql general_log argument 6 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references +NULL mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log command_type 5 NULL NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references +NULL mysql general_log argument 6 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references @@ -2673,10 +2673,10 @@ NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8 NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references +NULL mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references @@ -2691,7 +2691,7 @@ NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin cha NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql servers Server_name 1 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references NULL mysql servers Host 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Db 3 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references @@ -2701,23 +2701,23 @@ NULL mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL int(4) select,inse NULL mysql servers Socket 7 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Wrapper 8 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Owner 9 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql slow_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql slow_log query_time 3 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log lock_time 4 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log rows_sent 5 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log rows_examined 6 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log db 7 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references -NULL mysql slow_log last_insert_id 8 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log insert_id 9 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log server_id 10 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log db 7 NULL NO varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references +NULL mysql slow_log last_insert_id 8 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log insert_id 9 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log server_id 10 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log sql_text 11 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql tables_priv Table_priv 7 NO set 98 294 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') select,insert,update,references NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references @@ -3015,7 +3015,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -3122,9 +3122,9 @@ binary binary Binary pseudo charset 1 geostd8 geostd8_general_ci GEOSTD8 Georgian 1 cp932 cp932_japanese_ci SJIS for Windows Japanese 2 eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 -select sum(id) from collations; +select sum(id) from collations where collation_name <> 'utf8_general_cs'; sum(id) -11094 +10840 select collation_name, character_set_name into @x,@y from collation_character_set_applicability limit 1; select @x, @y; @@ -3184,8 +3184,16 @@ NULL mysql user 0 mysql PRIMARY 2 User A 3 NULL NULL BTREE select * from views; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION NULL db_datadict v1 SELECT * FROM information_schema.tables NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu SELECT DISTINCT u, NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu1 SELECT grantee AS u NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu SELECT DISTINCT u, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3 ) +AS server, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3, +LENGTH( SUBSTRING( u, +LENGTH( SUBSTRING_INDEX(u, '@',1)) +3 )) - 1 ) +AS Server_Clean +FROM db_datadict.vu1 NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu1 SELECT grantee AS u +FROM information_schema.user_privileges NONE NO root@localhost DEFINER latin1 latin1_swedish_ci select * from user_privileges order by grantee, privilege_type; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES @@ -3585,10 +3593,10 @@ NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 N SELECT * FROM character_sets LIMIT 1; CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN big5 big5_chinese_ci Big5 Traditional Chinese 2 -SELECT * FROM collations LIMIT 1; +SELECT * FROM collations where collation_name <> 'utf8_general_cs' LIMIT 1; COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN big5_chinese_ci big5 1 Yes Yes 1 -SELECT * FROM collation_character_set_applicability LIMIT 1; +SELECT * FROM collation_character_set_applicability where collation_name <> 'utf8_general_cs' LIMIT 1; COLLATION_NAME CHARACTER_SET_NAME big5_chinese_ci big5 SELECT * FROM routines LIMIT 1; @@ -5511,8 +5519,16 @@ NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE select * from information_schema.views limit 0, 5; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION NULL db_datadict v1 SELECT * FROM information_schema.tables NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu SELECT DISTINCT u, NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu1 SELECT grantee AS u NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu SELECT DISTINCT u, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3 ) +AS server, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3, +LENGTH( SUBSTRING( u, +LENGTH( SUBSTRING_INDEX(u, '@',1)) +3 )) - 1 ) +AS Server_Clean +FROM db_datadict.vu1 NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu1 SELECT grantee AS u +FROM information_schema.user_privileges NONE NO root@localhost DEFINER latin1 latin1_swedish_ci select * from information_schema.user_privileges limit 0, 5; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'localhost' NULL SELECT YES @@ -5563,12 +5579,12 @@ COUNT(*) SELECT COUNT(*) FROM information_schema. character_sets ; COUNT(*) 36 -SELECT COUNT(*) FROM information_schema. collations ; +SELECT COUNT(*) FROM information_schema. collations where collation_name <> 'utf8_general_cs' ; COUNT(*) -128 -SELECT COUNT(*) FROM information_schema. collation_character_set_applicability ; +127 +SELECT COUNT(*) FROM information_schema. collation_character_set_applicability where collation_name <> 'utf8_general_cs' ; COUNT(*) -129 +128 SELECT COUNT(*) FROM information_schema. routines ; COUNT(*) 1 @@ -7321,7 +7337,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7472,7 +7488,7 @@ where table_schema like 'db_datadict%'; table_name index_schema index_name index_type res_t_401013 db_datadict i_6_401013 HASH select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7609,7 +7625,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7758,7 +7774,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7903,7 +7919,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -8061,7 +8077,7 @@ where table_schema like 'db_datadict%'; table_name index_schema index_name index_type res_t_401015 db_datadict i_6_401015 BTREE select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -8197,7 +8213,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -8447,7 +8463,8 @@ ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_ FLUSH PRIVILEGES; connect(localhost,u_6_401017,,test,MYSQL_PORT,MYSQL_SOCK); use information_schema; -select * from collation_character_set_applicability; +select * from collation_character_set_applicability +where collation_name <> 'utf8_general_cs'; COLLATION_NAME CHARACTER_SET_NAME big5_chinese_ci big5 big5_bin big5 @@ -8525,7 +8542,6 @@ utf8_roman_ci utf8 utf8_persian_ci utf8 utf8_esperanto_ci utf8 utf8_hungarian_ci utf8 -utf8_general_cs utf8 ucs2_general_ci ucs2 ucs2_bin ucs2 ucs2_unicode_ci ucs2 @@ -8654,7 +8670,7 @@ COLUMNS CHARACTER_SET_NAME varchar(64) COLUMNS COLLATION_NAME varchar(64) COLUMNS COLUMN_TYPE longtext COLUMNS COLUMN_KEY varchar(3) -COLUMNS EXTRA varchar(20) +COLUMNS EXTRA varchar(27) COLUMNS PRIVILEGES varchar(80) COLUMNS COLUMN_COMMENT varchar(255) COLUMN_PRIVILEGES GRANTEE varchar(81) @@ -9215,7 +9231,7 @@ binary geostd8 cp932 eucjpms -select collation_name from collations; +select collation_name from collations where collation_name <> 'utf8_general_cs'; collation_name big5_chinese_ci big5_bin @@ -9292,7 +9308,6 @@ utf8_roman_ci utf8_persian_ci utf8_esperanto_ci utf8_hungarian_ci -utf8_general_cs ucs2_general_ci ucs2_bin ucs2_unicode_ci @@ -9581,7 +9596,7 @@ NULL information_schema collations SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NUL Testcase 3.2.3.2: -------------------------------------------------------------------------------- -SELECT * FROM collations; +SELECT * FROM collations where collation_name <> 'utf8_general_cs'; COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN big5_chinese_ci big5 1 Yes Yes 1 big5_bin big5 84 Yes 1 @@ -9658,7 +9673,6 @@ utf8_roman_ci utf8 207 Yes 8 utf8_persian_ci utf8 208 Yes 8 utf8_esperanto_ci utf8 209 Yes 8 utf8_hungarian_ci utf8 210 Yes 8 -utf8_general_cs utf8 254 Yes 1 ucs2_general_ci ucs2 35 Yes Yes 1 ucs2_bin ucs2 90 Yes 1 ucs2_unicode_ci ucs2 128 Yes 8 @@ -9744,7 +9758,8 @@ NULL information_schema collation_character_set_applicability CHARACTER_SET_NAME Testcase 3.2.4.2: -------------------------------------------------------------------------------- -SELECT * FROM collation_character_set_applicability; +SELECT * FROM collation_character_set_applicability +where collation_name <> 'utf8_general_cs'; COLLATION_NAME CHARACTER_SET_NAME big5_chinese_ci big5 big5_bin big5 @@ -9822,7 +9837,6 @@ utf8_roman_ci utf8 utf8_persian_ci utf8 utf8_esperanto_ci utf8 utf8_hungarian_ci utf8 -utf8_general_cs utf8 ucs2_general_ci ucs2 ucs2_bin ucs2 ucs2_unicode_ci ucs2 @@ -10060,7 +10074,7 @@ CHARACTER_SET_NAME varchar(64) YES NULL COLLATION_NAME varchar(64) YES NULL COLUMN_TYPE longtext NO NULL COLUMN_KEY varchar(3) NO -EXTRA varchar(20) NO +EXTRA varchar(27) NO PRIVILEGES varchar(80) NO COLUMN_COMMENT varchar(255) NO SHOW CREATE TABLE columns; @@ -10082,7 +10096,7 @@ COLUMNS CREATE TEMPORARY TABLE `COLUMNS` ( `COLLATION_NAME` varchar(64) DEFAULT NULL, `COLUMN_TYPE` longtext NOT NULL, `COLUMN_KEY` varchar(3) NOT NULL DEFAULT '', - `EXTRA` varchar(20) NOT NULL DEFAULT '', + `EXTRA` varchar(27) NOT NULL DEFAULT '', `PRIVILEGES` varchar(80) NOT NULL DEFAULT '', `COLUMN_COMMENT` varchar(255) NOT NULL DEFAULT '' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 @@ -10113,7 +10127,7 @@ NULL information_schema columns CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema columns COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema columns COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema columns COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema columns EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema columns EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema columns PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema columns COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select @@ -10168,7 +10182,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -10442,7 +10456,7 @@ NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PR NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references @@ -10473,7 +10487,7 @@ NULL mysql event definer 4 NO char 77 231 NULL NULL utf8 utf8_bin char(77) se NULL mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event interval_value 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql event interval_field 7 NULL YES enum 18 54 NULL NULL utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') select,insert,update,references -NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql event modified 9 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql event last_executed 10 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event starts 11 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references @@ -10492,12 +10506,12 @@ NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI sel NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql general_log user_host 2 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references -NULL mysql general_log thread_id 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log server_id 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log command_type 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL mysql general_log argument 6 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references +NULL mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log command_type 5 NULL NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references +NULL mysql general_log argument 6 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references @@ -10550,10 +10564,10 @@ NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8 NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references +NULL mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references @@ -10568,7 +10582,7 @@ NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin cha NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql servers Server_name 1 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references NULL mysql servers Host 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Db 3 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references @@ -10578,23 +10592,23 @@ NULL mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL int(4) select,inse NULL mysql servers Socket 7 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Wrapper 8 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Owner 9 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql slow_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql slow_log query_time 3 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log lock_time 4 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log rows_sent 5 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log rows_examined 6 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log db 7 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references -NULL mysql slow_log last_insert_id 8 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log insert_id 9 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log server_id 10 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log db 7 NULL NO varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references +NULL mysql slow_log last_insert_id 8 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log insert_id 9 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log server_id 10 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log sql_text 11 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql tables_priv Table_priv 7 NO set 98 294 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') select,insert,update,references NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references @@ -10892,7 +10906,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -10995,7 +11009,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -11506,7 +11520,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -11552,7 +11566,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -12063,7 +12077,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -12197,7 +12211,7 @@ NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint( 3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) 1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext 3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20) +3.0000 information_schema COLUMNS EXTRA varchar 27 81 utf8 utf8_general_ci varchar(27) 3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80) 3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255) 3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) @@ -12579,7 +12593,7 @@ NULL mysql ndb_binlog_index schemaops bigint NULL NULL NULL NULL bigint(20) unsi 3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO') 3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER') 1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob -3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64) +1.0000 mysql proc returns longblob 4294967295 4294967295 NULL NULL longblob 1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob 3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77) NULL mysql proc created timestamp NULL NULL NULL NULL timestamp diff --git a/mysql-test/suite/funcs_1/r/myisam__datadict.result b/mysql-test/suite/funcs_1/r/myisam__datadict.result index da478bb2779..29fcc8a378f 100644 --- a/mysql-test/suite/funcs_1/r/myisam__datadict.result +++ b/mysql-test/suite/funcs_1/r/myisam__datadict.result @@ -2296,7 +2296,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -2595,7 +2595,7 @@ NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PR NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references @@ -2626,7 +2626,7 @@ NULL mysql event definer 4 NO char 77 231 NULL NULL utf8 utf8_bin char(77) se NULL mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event interval_value 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql event interval_field 7 NULL YES enum 18 54 NULL NULL utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') select,insert,update,references -NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql event modified 9 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql event last_executed 10 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event starts 11 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references @@ -2645,12 +2645,12 @@ NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI sel NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql general_log user_host 2 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references -NULL mysql general_log thread_id 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log server_id 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log command_type 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL mysql general_log argument 6 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references +NULL mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log command_type 5 NULL NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references +NULL mysql general_log argument 6 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references @@ -2703,10 +2703,10 @@ NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8 NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references +NULL mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references @@ -2721,7 +2721,7 @@ NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin cha NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql servers Server_name 1 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references NULL mysql servers Host 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Db 3 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references @@ -2731,23 +2731,23 @@ NULL mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL int(4) select,inse NULL mysql servers Socket 7 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Wrapper 8 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Owner 9 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql slow_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql slow_log query_time 3 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log lock_time 4 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log rows_sent 5 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log rows_examined 6 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log db 7 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references -NULL mysql slow_log last_insert_id 8 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log insert_id 9 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log server_id 10 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log db 7 NULL NO varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references +NULL mysql slow_log last_insert_id 8 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log insert_id 9 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log server_id 10 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log sql_text 11 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql tables_priv Table_priv 7 NO set 98 294 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') select,insert,update,references NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references @@ -3067,7 +3067,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -3192,9 +3192,9 @@ binary binary Binary pseudo charset 1 geostd8 geostd8_general_ci GEOSTD8 Georgian 1 cp932 cp932_japanese_ci SJIS for Windows Japanese 2 eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 -select sum(id) from collations; +select sum(id) from collations where collation_name <> 'utf8_general_cs'; sum(id) -11094 +10840 select collation_name, character_set_name into @x,@y from collation_character_set_applicability limit 1; select @x, @y; @@ -3254,8 +3254,16 @@ NULL mysql user 0 mysql PRIMARY 2 User A 3 NULL NULL BTREE select * from views; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION NULL db_datadict v1 SELECT * FROM information_schema.tables NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu SELECT DISTINCT u, NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu1 SELECT grantee AS u NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu SELECT DISTINCT u, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3 ) +AS server, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3, +LENGTH( SUBSTRING( u, +LENGTH( SUBSTRING_INDEX(u, '@',1)) +3 )) - 1 ) +AS Server_Clean +FROM db_datadict.vu1 NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu1 SELECT grantee AS u +FROM information_schema.user_privileges NONE NO root@localhost DEFINER latin1 latin1_swedish_ci select * from user_privileges order by grantee, privilege_type; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES @@ -3655,10 +3663,10 @@ NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 N SELECT * FROM character_sets LIMIT 1; CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN big5 big5_chinese_ci Big5 Traditional Chinese 2 -SELECT * FROM collations LIMIT 1; +SELECT * FROM collations where collation_name <> 'utf8_general_cs' LIMIT 1; COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN big5_chinese_ci big5 1 Yes Yes 1 -SELECT * FROM collation_character_set_applicability LIMIT 1; +SELECT * FROM collation_character_set_applicability where collation_name <> 'utf8_general_cs' LIMIT 1; COLLATION_NAME CHARACTER_SET_NAME big5_chinese_ci big5 SELECT * FROM routines LIMIT 1; @@ -5581,8 +5589,16 @@ NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE select * from information_schema.views limit 0, 5; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION NULL db_datadict v1 SELECT * FROM information_schema.tables NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu SELECT DISTINCT u, NONE NO root@localhost DEFINER latin1 latin1_swedish_ci -NULL db_datadict vu1 SELECT grantee AS u NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu SELECT DISTINCT u, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3 ) +AS server, +SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,'@',1))+3, +LENGTH( SUBSTRING( u, +LENGTH( SUBSTRING_INDEX(u, '@',1)) +3 )) - 1 ) +AS Server_Clean +FROM db_datadict.vu1 NONE NO root@localhost DEFINER latin1 latin1_swedish_ci +NULL db_datadict vu1 SELECT grantee AS u +FROM information_schema.user_privileges NONE NO root@localhost DEFINER latin1 latin1_swedish_ci select * from information_schema.user_privileges limit 0, 5; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'localhost' NULL SELECT YES @@ -5633,12 +5649,12 @@ COUNT(*) SELECT COUNT(*) FROM information_schema. character_sets ; COUNT(*) 36 -SELECT COUNT(*) FROM information_schema. collations ; +SELECT COUNT(*) FROM information_schema. collations where collation_name <> 'utf8_general_cs' ; COUNT(*) -128 -SELECT COUNT(*) FROM information_schema. collation_character_set_applicability ; +127 +SELECT COUNT(*) FROM information_schema. collation_character_set_applicability where collation_name <> 'utf8_general_cs' ; COUNT(*) -129 +128 SELECT COUNT(*) FROM information_schema. routines ; COUNT(*) 1 @@ -7391,7 +7407,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7542,7 +7558,7 @@ where table_schema like 'db_datadict%'; table_name index_schema index_name index_type res_t_401013 db_datadict i_6_401013 BTREE select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7679,7 +7695,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7828,7 +7844,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -7973,7 +7989,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -8131,7 +8147,7 @@ where table_schema like 'db_datadict%'; table_name index_schema index_name index_type res_t_401015 db_datadict i_6_401015 BTREE select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -8267,7 +8283,7 @@ from information_schema.statistics where table_schema like 'db_datadict%'; table_name index_schema index_name index_type select * -from information_schema.user_privileges order by grantee, privilege_type; +from information_schema.user_privileges; GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE 'root'@'127.0.0.1' NULL ALTER YES 'root'@'127.0.0.1' NULL ALTER ROUTINE YES @@ -8517,7 +8533,8 @@ ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_ FLUSH PRIVILEGES; connect(localhost,u_6_401017,,test,MYSQL_PORT,MYSQL_SOCK); use information_schema; -select * from collation_character_set_applicability; +select * from collation_character_set_applicability +where collation_name <> 'utf8_general_cs'; COLLATION_NAME CHARACTER_SET_NAME big5_chinese_ci big5 big5_bin big5 @@ -8595,7 +8612,6 @@ utf8_roman_ci utf8 utf8_persian_ci utf8 utf8_esperanto_ci utf8 utf8_hungarian_ci utf8 -utf8_general_cs utf8 ucs2_general_ci ucs2 ucs2_bin ucs2 ucs2_unicode_ci ucs2 @@ -8724,7 +8740,7 @@ COLUMNS CHARACTER_SET_NAME varchar(64) COLUMNS COLLATION_NAME varchar(64) COLUMNS COLUMN_TYPE longtext COLUMNS COLUMN_KEY varchar(3) -COLUMNS EXTRA varchar(20) +COLUMNS EXTRA varchar(27) COLUMNS PRIVILEGES varchar(80) COLUMNS COLUMN_COMMENT varchar(255) COLUMN_PRIVILEGES GRANTEE varchar(81) @@ -9317,7 +9333,7 @@ binary geostd8 cp932 eucjpms -select collation_name from collations; +select collation_name from collations where collation_name <> 'utf8_general_cs'; collation_name big5_chinese_ci big5_bin @@ -9394,7 +9410,6 @@ utf8_roman_ci utf8_persian_ci utf8_esperanto_ci utf8_hungarian_ci -utf8_general_cs ucs2_general_ci ucs2_bin ucs2_unicode_ci @@ -9683,7 +9698,7 @@ NULL information_schema collations SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NUL Testcase 3.2.3.2: -------------------------------------------------------------------------------- -SELECT * FROM collations; +SELECT * FROM collations where collation_name <> 'utf8_general_cs'; COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN big5_chinese_ci big5 1 Yes Yes 1 big5_bin big5 84 Yes 1 @@ -9760,7 +9775,6 @@ utf8_roman_ci utf8 207 Yes 8 utf8_persian_ci utf8 208 Yes 8 utf8_esperanto_ci utf8 209 Yes 8 utf8_hungarian_ci utf8 210 Yes 8 -utf8_general_cs utf8 254 Yes 1 ucs2_general_ci ucs2 35 Yes Yes 1 ucs2_bin ucs2 90 Yes 1 ucs2_unicode_ci ucs2 128 Yes 8 @@ -9846,7 +9860,8 @@ NULL information_schema collation_character_set_applicability CHARACTER_SET_NAME Testcase 3.2.4.2: -------------------------------------------------------------------------------- -SELECT * FROM collation_character_set_applicability; +SELECT * FROM collation_character_set_applicability +where collation_name <> 'utf8_general_cs'; COLLATION_NAME CHARACTER_SET_NAME big5_chinese_ci big5 big5_bin big5 @@ -9924,7 +9939,6 @@ utf8_roman_ci utf8 utf8_persian_ci utf8 utf8_esperanto_ci utf8 utf8_hungarian_ci utf8 -utf8_general_cs utf8 ucs2_general_ci ucs2 ucs2_bin ucs2 ucs2_unicode_ci ucs2 @@ -10162,7 +10176,7 @@ CHARACTER_SET_NAME varchar(64) YES NULL COLLATION_NAME varchar(64) YES NULL COLUMN_TYPE longtext NO NULL COLUMN_KEY varchar(3) NO -EXTRA varchar(20) NO +EXTRA varchar(27) NO PRIVILEGES varchar(80) NO COLUMN_COMMENT varchar(255) NO SHOW CREATE TABLE columns; @@ -10184,7 +10198,7 @@ COLUMNS CREATE TEMPORARY TABLE `COLUMNS` ( `COLLATION_NAME` varchar(64) DEFAULT NULL, `COLUMN_TYPE` longtext NOT NULL, `COLUMN_KEY` varchar(3) NOT NULL DEFAULT '', - `EXTRA` varchar(20) NOT NULL DEFAULT '', + `EXTRA` varchar(27) NOT NULL DEFAULT '', `PRIVILEGES` varchar(80) NOT NULL DEFAULT '', `COLUMN_COMMENT` varchar(255) NOT NULL DEFAULT '' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 @@ -10215,7 +10229,7 @@ NULL information_schema columns CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema columns COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema columns COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema columns COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema columns EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema columns EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema columns PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema columns COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select @@ -10270,7 +10284,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -10544,7 +10558,7 @@ NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PR NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references @@ -10575,7 +10589,7 @@ NULL mysql event definer 4 NO char 77 231 NULL NULL utf8 utf8_bin char(77) se NULL mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event interval_value 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql event interval_field 7 NULL YES enum 18 54 NULL NULL utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') select,insert,update,references -NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql event modified 9 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql event last_executed 10 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references NULL mysql event starts 11 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references @@ -10594,12 +10608,12 @@ NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI sel NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql general_log user_host 2 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references -NULL mysql general_log thread_id 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log server_id 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql general_log command_type 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL mysql general_log argument 6 NULL YES mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references +NULL mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references +NULL mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql general_log command_type 5 NULL NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references +NULL mysql general_log argument 6 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references @@ -10652,10 +10666,10 @@ NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8 NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references +NULL mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references @@ -10670,7 +10684,7 @@ NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin cha NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql servers Server_name 1 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references NULL mysql servers Host 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Db 3 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references @@ -10680,23 +10694,23 @@ NULL mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL int(4) select,inse NULL mysql servers Socket 7 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Wrapper 8 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NULL mysql servers Owner 9 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql slow_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql slow_log query_time 3 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log lock_time 4 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL mysql slow_log rows_sent 5 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log rows_examined 6 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log db 7 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references -NULL mysql slow_log last_insert_id 8 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log insert_id 9 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql slow_log server_id 10 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log db 7 NULL NO varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references +NULL mysql slow_log last_insert_id 8 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log insert_id 9 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql slow_log server_id 10 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references NULL mysql slow_log sql_text 11 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL mysql tables_priv Table_priv 7 NO set 98 294 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') select,insert,update,references NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references @@ -11016,7 +11030,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -11137,7 +11151,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -11670,7 +11684,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -11726,7 +11740,7 @@ NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NU NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select @@ -12259,7 +12273,7 @@ NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL N NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references @@ -12411,7 +12425,7 @@ NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint( 3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) 1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext 3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20) +3.0000 information_schema COLUMNS EXTRA varchar 27 81 utf8 utf8_general_ci varchar(27) 3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80) 3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255) 3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) @@ -12793,7 +12807,7 @@ NULL mysql ndb_binlog_index schemaops bigint NULL NULL NULL NULL bigint(20) unsi 3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO') 3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER') 1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob -3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64) +1.0000 mysql proc returns longblob 4294967295 4294967295 NULL NULL longblob 1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob 3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77) NULL mysql proc created timestamp NULL NULL NULL NULL timestamp diff --git a/mysql-test/suite/funcs_1/r/ndb_cursors.result b/mysql-test/suite/funcs_1/r/ndb_cursors.result index 3a558ea7883..ac1eb46e974 100644 --- a/mysql-test/suite/funcs_1/r/ndb_cursors.result +++ b/mysql-test/suite/funcs_1/r/ndb_cursors.result @@ -75,7 +75,7 @@ Note 1265 Data truncated for column 'f45' at row 1 Note 1265 Data truncated for column 'f47' at row 1 Note 1265 Data truncated for column 'f49' at row 1 Note 1265 Data truncated for column 'f51' at row 1 -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb1.txt' into table tb1 ; NOT YET IMPLEMENTED: cursor tests diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_0102.result b/mysql-test/suite/funcs_1/r/ndb_trig_0102.result index 7b1b3caf058..b67b0e2afe0 100644 --- a/mysql-test/suite/funcs_1/r/ndb_trig_0102.result +++ b/mysql-test/suite/funcs_1/r/ndb_trig_0102.result @@ -65,7 +65,7 @@ Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ; Testcase: 3.5.1.1: diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_03.result b/mysql-test/suite/funcs_1/r/ndb_trig_03.result index c0d2575bc38..fa86acedcb7 100644 --- a/mysql-test/suite/funcs_1/r/ndb_trig_03.result +++ b/mysql-test/suite/funcs_1/r/ndb_trig_03.result @@ -65,7 +65,7 @@ Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ; Testcase 3.5.3: diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_0407.result b/mysql-test/suite/funcs_1/r/ndb_trig_0407.result index 601e8fe7ce7..e21a2b312e4 100644 --- a/mysql-test/suite/funcs_1/r/ndb_trig_0407.result +++ b/mysql-test/suite/funcs_1/r/ndb_trig_0407.result @@ -65,7 +65,7 @@ Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ; Testcase: 3.5: diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_08.result b/mysql-test/suite/funcs_1/r/ndb_trig_08.result index 1fefd964a40..63bb50c37eb 100644 --- a/mysql-test/suite/funcs_1/r/ndb_trig_08.result +++ b/mysql-test/suite/funcs_1/r/ndb_trig_08.result @@ -65,7 +65,7 @@ Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ; Testcase: 3.5: diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_09.result b/mysql-test/suite/funcs_1/r/ndb_trig_09.result index 9c9ceedd586..623036fa28f 100644 --- a/mysql-test/suite/funcs_1/r/ndb_trig_09.result +++ b/mysql-test/suite/funcs_1/r/ndb_trig_09.result @@ -65,7 +65,7 @@ Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ; Testcase 3.5.9.1/2: diff --git a/mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result b/mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result index 1f48a72ea12..4d063ff2acf 100644 --- a/mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/ndb_trig_1011ext.result @@ -65,7 +65,7 @@ Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/ndb_tb3.txt' into table tb3 ; Testcase 3.5.10.1/2/3: diff --git a/mysql-test/suite/ndb/r/ndb_dd_basic.result b/mysql-test/suite/ndb/r/ndb_dd_basic.result index 0ff28f889b7..f04905b8d13 100644 --- a/mysql-test/suite/ndb/r/ndb_dd_basic.result +++ b/mysql-test/suite/ndb/r/ndb_dd_basic.result @@ -8,20 +8,20 @@ INITIAL_SIZE 16M UNDO_BUFFER_SIZE = 1M ENGINE=MYISAM; Warnings: -Error 1477 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP' +Error 1478 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP' ALTER LOGFILE GROUP lg1 ADD UNDOFILE 'undofile02.dat' INITIAL_SIZE = 4M ENGINE=XYZ; Warnings: Warning 1286 Unknown table engine 'XYZ' -Error 1477 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP' +Error 1478 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP' CREATE TABLESPACE ts1 ADD DATAFILE 'datafile.dat' USE LOGFILE GROUP lg1 INITIAL_SIZE 12M; Warnings: -Error 1477 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP' +Error 1478 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP' set storage_engine=ndb; CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undofile.dat' diff --git a/mysql-test/suite/ndb/r/ndb_dd_ddl.result b/mysql-test/suite/ndb/r/ndb_dd_ddl.result index 569769cfaef..d8d9e8631d5 100644 --- a/mysql-test/suite/ndb/r/ndb_dd_ddl.result +++ b/mysql-test/suite/ndb/r/ndb_dd_ddl.result @@ -16,7 +16,7 @@ ERROR HY000: Failed to create LOGFILE GROUP SHOW WARNINGS; Level Code Message Error 1296 Got error 1514 'Currently there is a limit of one logfile group' from NDB -Error 1527 Failed to create LOGFILE GROUP +Error 1528 Failed to create LOGFILE GROUP CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undofile.dat' INITIAL_SIZE 1M diff --git a/mysql-test/suite/ndb/r/ndb_gis.result b/mysql-test/suite/ndb/r/ndb_gis.result index b401dee8054..6c44c6fb822 100644 --- a/mysql-test/suite/ndb/r/ndb_gis.result +++ b/mysql-test/suite/ndb/r/ndb_gis.result @@ -463,7 +463,7 @@ drop table t1; End of 4.1 tests CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY); Warnings: -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))')); INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))')); INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))')); @@ -1013,7 +1013,7 @@ drop table t1; End of 4.1 tests CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY); Warnings: -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK' INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))')); INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))')); INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))')); diff --git a/mysql-test/suite/ndb/r/ndb_row_format.result b/mysql-test/suite/ndb/r/ndb_row_format.result index ea495e7e9c5..eea0692dd92 100644 --- a/mysql-test/suite/ndb/r/ndb_row_format.result +++ b/mysql-test/suite/ndb/r/ndb_row_format.result @@ -8,7 +8,7 @@ ENGINE=NDB; ERROR HY000: Can't create table 'test.t1' (errno: 138) SHOW WARNINGS; Level Code Message -Error 1477 Table storage engine 'ndbcluster' does not support the create option 'Row format FIXED incompatible with variable sized attribute' +Error 1478 Table storage engine 'ndbcluster' does not support the create option 'Row format FIXED incompatible with variable sized attribute' Error 1005 Can't create table 'test.t1' (errno: 138) CREATE TABLE t1 ( a INT KEY, diff --git a/mysql-test/suite/ndb/r/ndb_single_user.result b/mysql-test/suite/ndb/r/ndb_single_user.result index 552629ae532..0a4f7cd0b5f 100644 --- a/mysql-test/suite/ndb/r/ndb_single_user.result +++ b/mysql-test/suite/ndb/r/ndb_single_user.result @@ -11,7 +11,7 @@ ERROR HY000: Failed to create LOGFILE GROUP show warnings; Level Code Message Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB -Error 1527 Failed to create LOGFILE GROUP +Error 1528 Failed to create LOGFILE GROUP create table t1 (a int key, b int unique, c int) engine ndb; CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undofile.dat' @@ -27,14 +27,14 @@ ERROR HY000: Failed to create TABLESPACE show warnings; Level Code Message Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB -Error 1527 Failed to create TABLESPACE +Error 1528 Failed to create TABLESPACE DROP LOGFILE GROUP lg1 ENGINE =NDB; ERROR HY000: Failed to drop LOGFILE GROUP show warnings; Level Code Message Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB -Error 1528 Failed to drop LOGFILE GROUP +Error 1529 Failed to drop LOGFILE GROUP CREATE TABLESPACE ts1 ADD DATAFILE 'datafile.dat' USE LOGFILE GROUP lg1 @@ -47,7 +47,7 @@ ERROR HY000: Failed to alter: DROP DATAFILE show warnings; Level Code Message Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB -Error 1532 Failed to alter: DROP DATAFILE +Error 1533 Failed to alter: DROP DATAFILE ALTER TABLESPACE ts1 DROP DATAFILE 'datafile.dat' ENGINE NDB; @@ -57,7 +57,7 @@ ERROR HY000: Failed to drop TABLESPACE show warnings; Level Code Message Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB -Error 1528 Failed to drop TABLESPACE +Error 1529 Failed to drop TABLESPACE DROP TABLESPACE ts1 ENGINE NDB; DROP LOGFILE GROUP lg1 diff --git a/mysql-test/suite/ndb/r/partition_03ndb.result b/mysql-test/suite/ndb/r/partition_03ndb.result deleted file mode 100644 index 28339cc7435..00000000000 --- a/mysql-test/suite/ndb/r/partition_03ndb.result +++ /dev/null @@ -1,1361 +0,0 @@ -SET SESSION storage_engine='NDB' ; -SET @max_row = 200; -SET AUTOCOMMIT= 1; -#------------------------------------------------------------------------ -# 0. Creation of an auxiliary table needed in all testcases -#------------------------------------------------------------------------ -DROP TABLE IF EXISTS t0_template; -CREATE TABLE t0_template ( f1 INTEGER, f2 char(20), PRIMARY KEY(f1)) -ENGINE = MEMORY; -# Logging of 200 INSERTs into t0_template suppressed -#------------------------------------------------------------------------ -# 1. Some syntax checks -#------------------------------------------------------------------------ -# 1.1 Subpartioned table without subpartitioning rule must be rejected -DROP TABLE IF EXISTS t1; -#------------------------------------------------------------------------ -# 2. Checks where the engine is set on all supported CREATE TABLE -# statement positions + basic operations on the tables -#------------------------------------------------------------------------ -DROP TABLE IF EXISTS t1; -# 2.1 table (non partitioned) for comparison -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = 'NDB' ; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY KEY () -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.2 table with engine setting just after column list -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = 'NDB' -PARTITION BY HASH(f1) PARTITIONS 2; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) PARTITIONS 2 -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.3 table with engine setting in the named partition part -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) -( PARTITION part1 STORAGE ENGINE = 'NDB' , -PARTITION part2 STORAGE ENGINE = 'NDB' -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = ndbcluster, PARTITION part2 ENGINE = ndbcluster) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.4 table with engine setting in the named subpartition part -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart12 STORAGE ENGINE = 'NDB' ), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart22 STORAGE ENGINE = 'NDB' ) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = ndbcluster, SUBPARTITION subpart12 ENGINE = ndbcluster), PARTITION part2 VALUES LESS THAN (2000) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster)) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.5 Ugly "incomplete" storage engine assignments -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) -( PARTITION part1 STORAGE ENGINE = 'NDB' , -PARTITION part2 -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = ndbcluster, PARTITION part2 ENGINE = ndbcluster) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) -( PARTITION part1 , -PARTITION part2 STORAGE ENGINE = 'NDB' -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = ndbcluster, PARTITION part2 ENGINE = ndbcluster) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, -SUBPARTITION subpart12 STORAGE ENGINE = 'NDB' ), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart22 STORAGE ENGINE = 'NDB' ) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = ndbcluster, SUBPARTITION subpart12 ENGINE = ndbcluster), PARTITION part2 VALUES LESS THAN (2000) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster)) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart12 STORAGE ENGINE = 'NDB' ), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 , -SUBPARTITION subpart22 ) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = ndbcluster, SUBPARTITION subpart12 ENGINE = ndbcluster), PARTITION part2 VALUES LESS THAN (2000) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster)) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.6 Ugly "over determined" storage engine assignments -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = 'NDB' -PARTITION BY HASH(f1) -( PARTITION part1 STORAGE ENGINE = 'NDB' , -PARTITION part2 STORAGE ENGINE = 'NDB' -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = ndbcluster, PARTITION part2 ENGINE = ndbcluster) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) ENGINE = 'NDB' -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart12 STORAGE ENGINE = 'NDB' ), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart22 STORAGE ENGINE = 'NDB' ) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = ndbcluster, SUBPARTITION subpart12 ENGINE = ndbcluster), PARTITION part2 VALUES LESS THAN (2000) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster)) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (1000) STORAGE ENGINE = 'NDB' -(SUBPARTITION subpart11 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart12 STORAGE ENGINE = 'NDB' ), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart22 STORAGE ENGINE = 'NDB' ) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = ndbcluster, SUBPARTITION subpart12 ENGINE = ndbcluster), PARTITION part2 VALUES LESS THAN (2000) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster)) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.7 Ugly storage engine assignments mixups -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (1000) ENGINE = 'NDB' -(SUBPARTITION subpart11 , -SUBPARTITION subpart12 ), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart22 STORAGE ENGINE = 'NDB' ) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = ndbcluster, SUBPARTITION subpart12 ENGINE = ndbcluster), PARTITION part2 VALUES LESS THAN (2000) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster)) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11 STORAGE ENGINE = 'NDB' , -SUBPARTITION subpart12 STORAGE ENGINE = 'NDB' ), -PARTITION part2 VALUES LESS THAN (2000) ENGINE = 'NDB' -(SUBPARTITION subpart21 , -SUBPARTITION subpart22 ) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = ndbcluster, SUBPARTITION subpart12 ENGINE = ndbcluster), PARTITION part2 VALUES LESS THAN (2000) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster)) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 2.8 Session default engine differs from engine used within create table -SET SESSION storage_engine='MEMORY'; -SET SESSION storage_engine='NDB' ; -#------------------------------------------------------------------------ -# 3. Check number of partitions and subpartitions -#------------------------------------------------------------------------ -DROP TABLE IF EXISTS t1; -# 3.1 (positive) without partition/subpartition number assignment -# 3.1.1 no partition number, no named partitions, no subpartitions mentioned -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 3.1.2 no partition number, named partitions, no subpartitions mentioned -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part2); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = ndbcluster, PARTITION part2 ENGINE = ndbcluster) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 3.1.3 variations on no partition/subpartition number, named partitions, -# different subpartitions are/are not named -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) (PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2000), PARTITION part3 VALUES LESS THAN (2147483647)) ; -DROP TABLE t1; -# FIXME several subtestcases of 3.1.3 disabled because of server crashes -# Bug#15407 Partitions: crash if subpartition -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) (PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21 , SUBPARTITION subpart22 )) ; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = ndbcluster, SUBPARTITION subpart12 ENGINE = ndbcluster), PARTITION part2 VALUES LESS THAN (2000) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster), PARTITION part3 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster)) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -# 3.2 partition/subpartition numbers good and bad values and notations -DROP TABLE IF EXISTS t1; -# 3.2.1 partition/subpartition numbers INTEGER notation -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) PARTITIONS 2 -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 2 -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) SUBPARTITIONS 2 (PARTITION part1 VALUES LESS THAN (1000) , PARTITION part2 VALUES LESS THAN (2147483647) ) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 1; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) PARTITIONS 1 -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 1 -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) SUBPARTITIONS 1 (PARTITION part1 VALUES LESS THAN (1000) , PARTITION part2 VALUES LESS THAN (2147483647) ) -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 200; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -UPDATE t1 SET f1 = f1 + 200 -WHERE f1 BETWEEN 100 - 50 AND 100 + 50; -SELECT (COUNT(*) = 200) AND (MIN(f1) = 1) AND (MAX(f1) = 100 + 50 + 200 ) -AS my_value FROM t1; -my_value -1 -DELETE FROM t1 -WHERE f1 BETWEEN 100 - 50 + 200 AND 100 + 50 + 200; -SELECT (COUNT(*) = 200 - 50 - 50 - 1) AND (MIN(f1) = 1) AND (MAX(f1) = 200) -AS my_value FROM t1; -my_value -1 -INSERT INTO t1 SET f1 = 0 , f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 0 AND f2 = '#######'; -my_value -1 -INSERT INTO t1 SET f1 = 200 + 1, f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 1 AND f2 = '#######'; -my_value -1 -UPDATE t1 SET f1 = 200 + 2, f2 = 'ZZZZZZZ' - WHERE f1 = 0 AND f2 = '#######'; -SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -my_value -1 -DELETE FROM t1 WHERE f1 = 200 + 2 AND f2 = 'ZZZZZZZ'; -SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; -my_value -1 -TRUNCATE t1; -SELECT COUNT(*) = 0 AS my_value FROM t1; -my_value -1 -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 0; -ERROR HY000: Number of partitions = 0 is not an allowed value -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 0 -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -ERROR HY000: Number of subpartitions = 0 is not an allowed value -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS -1; -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 '-1' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS -1 -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '-1 -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 1000000; -ERROR HY000: Too many partitions were defined -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 1000000 -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -ERROR HY000: Too many partitions were defined -# 3.2.4 partition/subpartition numbers STRING notation -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS '2'; -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 ''2'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '2' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''2' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS '2.0'; -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 ''2.0'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '2.0' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''2.0' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS '0.2E+1'; -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 ''0.2E+1'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '0.2E+1' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''0.2E+1' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS T' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS '2A'; -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 ''2A'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '2A' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''2A' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN ' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 'A2'; -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 ''A2'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 'A2' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''A2' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN ' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS ''; -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 '''' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS '' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 'GARBAGE'; -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 ''GARBAGE'' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 'GARBAGE' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 ''GARBAGE' -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS ' at line 3 -# 3.2.5 partition/subpartition numbers other notations -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2A; -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 '2A' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS 2A -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '2A -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS A2; -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 'A2' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS A2 -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 'A2 -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS GARBAGE; -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 'GARBAGE' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS GARBAGE -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 'GARBAGE -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS TH' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS "2"; -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 '"2"' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS "2" -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '"2" -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS "2A"; -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 '"2A"' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS "2A" -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '"2A" -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN ' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS "A2"; -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 '"A2"' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS "A2" -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '"A2" -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN ' at line 3 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS "GARBAGE"; -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 '"GARBAGE"' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) SUBPARTITION BY HASH(f1) -SUBPARTITIONS "GARBAGE" -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS THAN (2147483647)); -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 '"GARBAGE" -(PARTITION part1 VALUES LESS THAN (1000), PARTITION part2 VALUES LESS ' at line 3 -# 3.3 Mixups of number and names of partition/subpartition assigned -# 3.3.1 (positive) number of partition/subpartition = number of named partition/subpartition -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2 ( PARTITION part1, PARTITION part2 ) ; -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY HASH (f1) (PARTITION part1 ENGINE = ndbcluster, PARTITION part2 ENGINE = ndbcluster) -DROP TABLE t1; -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) PARTITIONS 2 -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPARTITION subpart22) -); -SHOW CREATE TABLE t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL, - `f2` char(20) default NULL -) ENGINE=ndbcluster DEFAULT CHARSET=latin1 PARTITION BY RANGE (f1) SUBPARTITION BY HASH (f1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = ndbcluster, SUBPARTITION subpart12 ENGINE = ndbcluster), PARTITION part2 VALUES LESS THAN (2147483647) (SUBPARTITION subpart21 ENGINE = ndbcluster, SUBPARTITION subpart22 ENGINE = ndbcluster)) -DROP TABLE t1; -# 3.3.2 (positive) number of partition/subpartition , 0 (= no) named partition/subpartition -# already checked above -# 3.3.3 (negative) number of partitions > number of named partitions -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) PARTITIONS 2 ( PARTITION part1 ) ; -ERROR 42000: Wrong number of partitions defined, mismatch with previous setting near ')' at line 2 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11 ), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPARTITION subpart22) -); -ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21, SUBPAR' at line 5 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2000) -(SUBPARTITION subpart21 ), -PARTITION part3 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart31, SUBPARTITION subpart32) -); -ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), -PARTITION part3 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart31, SUBPAR' at line 7 -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY RANGE(f1) PARTITIONS 2 -SUBPARTITION BY HASH(f1) SUBPARTITIONS 2 -( PARTITION part1 VALUES LESS THAN (1000) -(SUBPARTITION subpart11, SUBPARTITION subpart12), -PARTITION part2 VALUES LESS THAN (2147483647) -(SUBPARTITION subpart21 ) -); -ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ') -)' at line 7 -#------------------------------------------------------------------------ -# 4. Checks of logical partition/subpartition name -# file name clashes during CREATE TABLE -#------------------------------------------------------------------------ -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1) (PARTITION part1, PARTITION part1); -ERROR HY000: Duplicate partition name part1 -#------------------------------------------------------------------------ -# 5. Alter table experiments -#------------------------------------------------------------------------ -# 5.1 alter table add partition -# 5.1.1 (negative) add partition to non partitioned table -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)); -# FIXME Why does the error numbers of MyISAM(1482) and NDB(1005) differ ? -ALTER TABLE t1 ADD PARTITION (PARTITION part1); -Got one of the listed errors -DROP TABLE t1; -# 5.1.2 Add one partition to a table with one partition -CREATE TABLE t1 ( f1 INTEGER, f2 char(20)) -PARTITION BY HASH(f1); -INSERT INTO t1 SELECT * FROM t0_template WHERE f1 BETWEEN 1 AND 100; diff --git a/mysql-test/suite/ndb/r/ps_7ndb.result b/mysql-test/suite/ndb/r/ps_7ndb.result index e6bcb7f035e..fe694520f7e 100644 --- a/mysql-test/suite/ndb/r/ps_7ndb.result +++ b/mysql-test/suite/ndb/r/ps_7ndb.result @@ -63,7 +63,7 @@ def test t9 t9 c11 c11 246 9 6 Y 0 4 63 def test t9 t9 c12 c12 246 10 6 Y 0 4 63 def test t9 t9 c13 c13 10 10 10 Y 128 0 63 def test t9 t9 c14 c14 12 19 19 Y 128 0 63 -def test t9 t9 c15 c15 7 19 19 N 1249 0 63 +def test t9 t9 c15 c15 7 19 19 N 9441 0 63 def test t9 t9 c16 c16 11 8 8 Y 128 0 63 def test t9 t9 c17 c17 13 4 4 Y 32864 0 63 def test t9 t9 c18 c18 1 4 1 Y 32768 0 63 diff --git a/mysql-test/suite/ndb/t/disabled.def b/mysql-test/suite/ndb/t/disabled.def index f876039a042..e1539700803 100644 --- a/mysql-test/suite/ndb/t/disabled.def +++ b/mysql-test/suite/ndb/t/disabled.def @@ -12,6 +12,7 @@ partition_03ndb : BUG#16385 2006-03-24 mikael Partitions: crash when updating a range partitioned NDB table ndb_partition_error2 : HF is not sure if the test can work as internded on all the platforms +ndb_binlog_basic : Bug #32759 2007-11-27 mats ndb_binlog_basic assert failure 'thd->transaction.stmt.modified_non_trans_table' # the below testcase have been reworked to avoid the bug, test contains comment, keep bug open #ndb_binlog_ddl_multi : BUG#18976 2006-04-10 kent CRBR: multiple binlog, second binlog may miss schema log events diff --git a/mysql-test/suite/ndb/t/partition_03ndb.test b/mysql-test/suite/ndb/t/partition_03ndb.test deleted file mode 100644 index 3190ab9dfc7..00000000000 --- a/mysql-test/suite/ndb/t/partition_03ndb.test +++ /dev/null @@ -1,26 +0,0 @@ -############################################### -# # -# Partition tests NDB tables # -# # -############################################### - -# -# NOTE: PLEASE DO NOT ADD NOT NDB SPECIFIC TESTCASES HERE ! -# NON STORAGE SPECIFIC TESTCASES SHOULD BE ADDED IN -# THE SOURCED FIELS ONLY. -# - -# Storage engine to be tested -let $engine= 'NDB' ; --- source include/have_ndb.inc -eval SET SESSION storage_engine=$engine; - - -# Other storage engine <> storage engine to be tested -let $engine_other= 'MEMORY'; -# number of rows for the INSERT/UPDATE/DELETE/SELECT experiments -# on partioned tables -# Attention: In the moment the result files fit to @max_row = 200 only -SET @max_row = 200; - --- source include/partition_1.inc diff --git a/mysql-test/suite/parts/inc/methods1.inc b/mysql-test/suite/parts/inc/methods1.inc index 24006b6e0f1..d986b67a456 100644 --- a/mysql-test/suite/parts/inc/methods1.inc +++ b/mysql-test/suite/parts/inc/methods1.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_methods1.inc # +# inc/partition_methods1.inc # # # # Purpose: # # Create and check partitioned tables # @@ -11,7 +11,7 @@ # do # # 1. Create the partitioned table # # 2 Insert the content of the table t0_template into t1 # -# 3. Execute include/partition_check.inc # +# 3. Execute inc/partition_check.inc # # 4. Drop the table t1 # # done # # # @@ -21,14 +21,14 @@ # has to be set before sourcing this routine. # # Example: # # let $unique= , UNIQUE INDEX uidx1 (f_int1); # -# include/partition_method1s.inc # +# inc/partition_method1s.inc # # # -# Attention: The routine include/partition_methods2.inc is very similar # +# Attention: The routine inc/partition_methods2.inc is very similar # # to this one. So if something has to be changed here it # # might be necessary to do it also there # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -52,7 +52,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY KEY @@ -67,7 +66,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY LIST @@ -90,7 +88,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY RANGE @@ -114,7 +111,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY RANGE -- SUBPARTITION BY HASH @@ -137,7 +133,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY @@ -163,7 +158,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY LIST -- SUBPARTITION BY HASH @@ -186,7 +180,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY LIST -- SUBPARTITION BY KEY @@ -209,5 +202,4 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; diff --git a/mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc b/mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc index cba5c47f01b..1a66a26312a 100644 --- a/mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc +++ b/mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc @@ -21,253 +21,207 @@ let $sqlfunc = ascii(col1); let $valsqlfunc = ascii('a'); let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = ord(col1); let $valsqlfunc = ord('a'); let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = greatest(col1,15); let $valsqlfunc = greatest(1,15); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = isnull(col1); let $valsqlfunc = isnull(15); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = least(col1,15); let $valsqlfunc = least(15,30); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = case when col1>15 then 20 else 10 end; let $valsqlfunc = case when 1>30 then 20 else 15 end; let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = ifnull(col1,30); let $valsqlfunc = ifnull(1,30); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = nullif(col1,30); let $valsqlfunc = nullif(1,30); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = bit_length(col1); let $valsqlfunc = bit_length(255); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = char_length(col1); let $valsqlfunc = char_length('a'); #let $coltype = int; #--source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = character_length(col1); let $valsqlfunc = character_length('a'); let $coltype = char(30) --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = find_in_set(col1,'1,2,3,4,5,6,7,8,9'); let $valsqlfunc = find_in_set('i','a,b,c,d,e,f,g,h,i'); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = instr(col1,'acb'); let $valsqlfunc = instr('i','a,b,c,d,e,f,g,h,i'); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = length(col1); let $valsqlfunc = length('a,b,c,d,e,f,g,h,i'); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = locate('a',col1); let $valsqlfunc = locate('i','a,b,c,d,e,f,g,h,i'); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = octet_length(col1); let $valsqlfunc = octet_length('a,b,c,d,e,f,g,h,i'); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = position('a' in col1); let $valsqlfunc = position('i' in 'a,b,c,d,e,f,g,h,i'); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = strcmp(col1,'acb'); let $valsqlfunc = strcmp('i','a,b,c,d,e,f,g,h,i'); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = crc32(col1); let $valsqlfunc = crc32('a,b,c,d,e,f,g,h,i'); let $coltype = char(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = round(col1); let $valsqlfunc = round(15); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = sign(col1); let $valsqlfunc = sign(123); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = period_add(col1,5); let $valsqlfunc = period_add(9804,5); let $coltype = datetime; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = period_diff(col1,col2); let $valsqlfunc = period_diff(9809,199907); let $coltype = datetime,col2 datetime; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $coltype = int,col2 int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = timestampdiff(day,5,col1); let $valsqlfunc = timestampdiff(YEAR,'2002-05-01','2001-01-01'); let $coltype = datetime; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = unix_timestamp(col1); let $valsqlfunc = unix_timestamp ('2002-05-01'); let $coltype = date; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = week(col1); let $valsqlfunc = week('2002-05-01'); let $coltype = datetime; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = weekofyear(col1); let $valsqlfunc = weekofyear('2002-05-01'); let $coltype = datetime; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = cast(col1 as signed); let $valsqlfunc = cast(123 as signed); let $coltype = varchar(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = convert(col1,unsigned); let $valsqlfunc = convert(123,unsigned); let $coltype = varchar(30); --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = col1 | 20; let $valsqlfunc = 10 | 20; let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = col1 & 20; let $valsqlfunc = 10 & 20; let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = col1 ^ 20; let $valsqlfunc = 10 ^ 20; let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = col1 << 20; let $valsqlfunc = 10 << 20; let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = col1 >> 20; let $valsqlfunc = 10 >> 20; let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = ~col1; let $valsqlfunc = ~20; let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = bit_count(col1); let $valsqlfunc = bit_count(20); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc let $sqlfunc = inet_aton(col1); let $valsqlfunc = inet_aton('192.168.1.1'); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc set @var =20; let $sqlfunc = bit_length(col1)+@var-@var; let $valsqlfunc = bit_length(20)+@var-@var; let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc delimiter //; @@ -298,5 +252,4 @@ let $sqlfunc = getmaxsigned_t1(col1); let $valsqlfunc = getmaxsigned(10); let $coltype = int; --source suite/parts/inc/partition_blocked_sql_funcs.inc -# --source include/partition_blocked_sql_funcs.inc drop function if exists getmaxsigned_t1; diff --git a/mysql-test/suite/parts/inc/part_supported_sql_funcs_delete.inc b/mysql-test/suite/parts/inc/part_supported_sql_funcs_delete.inc index c0769cdeef1..3a486619b0b 100644 --- a/mysql-test/suite/parts/inc/part_supported_sql_funcs_delete.inc +++ b/mysql-test/suite/parts/inc/part_supported_sql_funcs_delete.inc @@ -1,5 +1,6 @@ ################################################################################ -# t/part_supported_sql_funcs_delete.inc # # # +# t/part_supported_sql_funcs_delete.inc # +# # # Purpose: # # Delete access of the tests frame for allowed sql functions # # # diff --git a/mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc b/mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc index 4761d15c6d3..25a9774d2a1 100644 --- a/mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc +++ b/mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc @@ -38,7 +38,6 @@ let $val2 = 13 ; let $val3 = 17 ; let $val4 = 15 ; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = ceiling(col1); @@ -51,7 +50,6 @@ let $val3 = 17.987; let $val4 = 15.654 ; # DISABLED due to bug 30577 #--source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = floor(col1); let $valsqlfunc = floor(15.123); @@ -63,7 +61,6 @@ let $val3 = 17.987; let $val4 = 15.654 ; # DISABLED due to bug 30577 #--source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = mod(col1,10); let $valsqlfunc = mod(15,10); @@ -74,7 +71,6 @@ let $val2 = 19; let $val3 = 17; let $val4 = 15 ; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = day(col1); let $valsqlfunc = day('2006-12-21'); @@ -85,7 +81,6 @@ let $val2 = '2006-01-17'; let $val3 = '2006-01-25'; let $val4 = '2006-02-05'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = dayofmonth(col1); let $valsqlfunc = dayofmonth('2006-12-24'); @@ -96,7 +91,6 @@ let $val2 = '2006-01-17'; let $val3 = '2006-01-25'; let $val4 = '2006-02-05'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = dayofweek(col1); let $valsqlfunc = dayofweek('2006-12-24'); @@ -107,7 +101,6 @@ let $val2 = '2006-02-17'; let $val3 = '2006-01-25'; let $val4 = '2006-02-05'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = dayofyear(col1); let $valsqlfunc = dayofyear('2006-12-25'); @@ -118,10 +111,8 @@ let $val2 = '2006-01-17'; let $val3 = '2006-02-25'; let $val4 = '2006-02-05'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $coltype = char(30); --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = extract(month from col1); let $valsqlfunc = extract(year from '1998-11-23'); @@ -132,7 +123,6 @@ let $val2 = '2006-02-17'; let $val3 = '2006-01-25'; let $val4 = '2006-02-05'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = hour(col1); let $valsqlfunc = hour('18:30'); @@ -143,7 +133,6 @@ let $val2 = '14:30'; let $val3 = '21:59'; let $val4 = '10:30'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = microsecond(col1); let $valsqlfunc = microsecond('10:30:10.000010'); @@ -154,7 +143,6 @@ let $val2 = '04:30:01.000018'; let $val3 = '00:59:22.000024'; let $val4 = '05:30:34.000037'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = minute(col1); let $valsqlfunc = minute('18:30'); @@ -164,7 +152,6 @@ let $val2 = '14:30:45'; let $val3 = '21:59:22'; let $val4 = '10:24:23'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = second(col1); let $valsqlfunc = second('18:30:14'); @@ -175,10 +162,8 @@ let $val2 = '14:30:20'; let $val3 = '21:59:22'; let $val4 = '10:22:33'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $coltype = char(30); --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = month(col1); let $valsqlfunc = month('2006-10-14'); @@ -189,7 +174,6 @@ let $val2 = '2006-12-17'; let $val3 = '2006-05-25'; let $val4 = '2006-11-06'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = quarter(col1); let $valsqlfunc = quarter('2006-10-14'); @@ -200,7 +184,6 @@ let $val2 = '2006-12-17'; let $val3 = '2006-09-25'; let $val4 = '2006-07-30'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = time_to_sec(col1)-(time_to_sec(col1)-20); let $valsqlfunc = time_to_sec('18:30:14')-(time_to_sec('17:59:59')); @@ -211,7 +194,6 @@ let $val2 = '14:30:45'; let $val3 = '21:59:22'; let $val4 = '10:33:11'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = to_days(col1)-to_days('2006-01-01'); let $valsqlfunc = to_days('2006-02-02')-to_days('2006-01-01'); @@ -222,7 +204,6 @@ let $val2 = '2006-01-17'; let $val3 = '2006-01-25'; let $val4 = '2006-02-06'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc # DATEDIFF() is implemented as (TO_DAYS(d1) - TO_DAYS(d2)) let $sqlfunc = datediff(col1, '2006-01-01'); @@ -234,7 +215,6 @@ let $val2 = '2006-01-17'; let $val3 = '2006-01-25'; let $val4 = '2006-02-06'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = weekday(col1); let $valsqlfunc = weekday('2006-10-14'); @@ -245,7 +225,6 @@ let $val2 = '2006-11-17'; let $val3 = '2006-05-25'; let $val4 = '2006-02-06'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = year(col1)-1990; let $valsqlfunc = year('2005-10-14')-1990; @@ -256,7 +235,6 @@ let $val2 = '2000-02-17'; let $val3 = '2004-05-25'; let $val4 = '2002-02-15'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc let $sqlfunc = yearweek(col1)-200600; let $valsqlfunc = yearweek('2006-10-14')-200600; @@ -267,4 +245,3 @@ let $val2 = '2006-08-17'; let $val3 = '2006-03-25'; let $val4 = '2006-11-15'; --source suite/parts/inc/partition_supported_sql_funcs.inc -# --source include/partition_supported_sql_funcs.inc diff --git a/mysql-test/suite/parts/inc/partition.pre b/mysql-test/suite/parts/inc/partition.pre index ade4a1592be..0c906ce4581 100644 --- a/mysql-test/suite/parts/inc/partition.pre +++ b/mysql-test/suite/parts/inc/partition.pre @@ -1,5 +1,5 @@ ################################################################################ -# include/partition.pre # +# inc/partition.pre # # # # Purpose: # # Auxiliary script creating prerequisites needed by the partitioning tests # @@ -26,27 +26,21 @@ eval SET @@session.storage_engine = $engine; ##### Disabled/affected testcases, because of open bugs ##### ---echo ---echo #------------------------------------------------------------------------ ---echo # There are several testcases disabled because of the open bugs ---echo # #15890 -if (`SELECT @@session.storage_engine IN('ndbcluster')`) -{ ---echo # #18730, Bug#18735 -} ---echo #------------------------------------------------------------------------ -# Attention: Only bugs appearing in all storage engines should be mentioned above. -# The top level test wrapper (example: t/partition_basic_ndb.test) -# may set the $fixed_bug<nnnnn> variable to 0 after sourcing -# this file. -# Bug#15890 Partitions: Strange interpretation of partition number -let $fixed_bug15890= 0; -# Bug#18730: Partitions: NDB, crash on SELECT MIN(<unique column>) -# Attention: NDB testcases set this variable later to 0 -let $fixed_bug18730= 1; -# Bug#18735: Partitions: NDB, UNIQUE INDEX, UPDATE, strange server response -# Attention: NDB testcases set this variable later to 0 -let $fixed_bug18735= 1; +# --echo +# --echo #------------------------------------------------------------------------ +# --echo # There are several testcases disabled because of the open bugs +# if (`SELECT @@session.storage_engine IN('ndbcluster')`) +# { +# --echo # #18730 +# } +# --echo #------------------------------------------------------------------------ +# # Attention: Only bugs appearing in all storage engines should be mentioned above. +# # The top level test wrapper (example: t/partition_basic_ndb.test) +# # may set the $fixed_bug<nnnnn> variable to 0 after sourcing +# # this file. +# # Bug#18730: Partitions: NDB, crash on SELECT MIN(<unique column>) +# # Attention: NDB testcases set this variable later to 0 +# let $fixed_bug18730= 1; --echo --echo #------------------------------------------------------------------------ @@ -66,6 +60,17 @@ if ($debug) --echo # It is to be expected, that we get huge differences. } +let $ER_DUP_KEY= 1022; +let $ER_GET_ERRNO= 1030; +let $ER_BAD_NULL_ERROR= 1048; +let $ER_DUP_ENTRY= 1062; +let $ER_PARSE_ERROR= 1064; +let $ER_TOO_MANY_PARTITIONS_ERROR= 1499; +let $ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF= 1503; +let $ER_NO_PARTS_ERROR= 1504; +let $ER_DROP_PARTITION_NON_EXISTENT= 1507; +let $ER_SAME_NAME_PARTITION= 1517; +let $ER_NO_PARTITION_FOR_GIVEN_VALUE= 1526; # Set the variable $engine_other to a storage engine <> $engine --disable_query_log @@ -308,23 +313,23 @@ if (0) # (t/partition_<feature>_<engine>.test) # a) General not engine specific settings and requirements # $debug, $ls, @max_row, $more_trigger_tests, ..... -# --source include/have_partition.inc +# --source inc/have_partition.inc # b) Engine specific settings and requirements # $do_pk_tests, $MAX_VALUE, $engine # SET SESSION storage_engine # $engine_other # c) Generate the prerequisites ($variables, @variables, tables) needed # via -# --source include/partition.pre +# --source inc/partition.pre # d) Set "fixed_bug<number>" variables to 1 if there are open engine # specific bugs which need worarounds. # e) Execute the feature specific testscript via -# --source include/partition_<feature>.inc +# --source inc/partition_<feature>.inc # f) Perform a cleanup by removing all objects created within the tests -# --source include/partition_cleanup.inc +# --source inc/partition_cleanup.inc # # 2.2. script generating the prerequisites needed in all tests -# (include/partition.pre) +# (inc/partition.pre) # a) Message about open bugs causing that # - some testcases are disabled # - it cannot be avoided that the file with expected results suffers @@ -340,36 +345,70 @@ if (0) # c) Setting of auxiliary variables # d) Creation of auxiliary tables .... # -# 3. script checking a feature -# (include/partition_<feature.inc>.inc) -# Example: -# a) "set/compute" a CREATE TABLE t1 .. and an ALTER TABLE ... statement -# b) CREATE TABLE t1 ... -# c) INSERT INTO t1 (.....) SELECT .... FROM t0_template WHERE ... -# The first 50 % of all t0_template rows will be inserted into t1. -# d) ALTER TABLE t1 (Example: ADD/DROP UNIQUE INDEX) -# e) INSERT INTO t1 (.....) SELECT .... FROM t0_template WHERE ... -# The second 50 % of all t0_template rows will be inserted into t1. -# Now t1 and t0_template should have the same content. -# f) Check the "usability" of the current table t1 -# via -# --source include/partition_check.pre -# g) DROP TABLE t1 -# Switch to other CREATE and ALTER statements and run sequence a)-g) again -# ... +# 2.3. script checking a feature +# (inc/partition_<feature.inc>.inc) +# Example: +# a) "set/compute" a CREATE TABLE t1 .. and an ALTER TABLE ... statement +# b) CREATE TABLE t1 ... +# c) INSERT INTO t1 (.....) SELECT .... FROM t0_template WHERE ... +# The first 50 % of all t0_template rows will be inserted into t1. +# d) ALTER TABLE t1 (Example: ADD/DROP UNIQUE INDEX) +# e) INSERT INTO t1 (.....) SELECT .... FROM t0_template WHERE ... +# The second 50 % of all t0_template rows will be inserted into t1. +# Now t1 and t0_template should have the same content. +# f) Check the "usability" of the current table t1 +# via +# --source inc/partition_check.pre +# g) DROP TABLE t1 +# Switch to other CREATE and ALTER statements and run sequence a)-g) again +# ... +# +# 2.4. script checking if a certain table shows the expected behaviour +# ("usability" check): inc/partition_check.inc +# - SELECT/INSERT/UPDATE/DELETE affecting single and multiple records +# - check of values of special interest like NULL etc. +# - INSERT/UPDATE with BEFORE/AFTER triggers +# - violations of UNIQUE constraints, if there are any defined +# - transactions ... +# - TRUNCATE/OPTIMIZE/.. +# - ... +# +# +# 2.5. There are some auxiliary scripts with sub tests where we cannot predict +# if we get an error and if we get one, which one. +# Example: INSERT a record where the value for a certain column equals +# some existing record. +# Depending on existing/not existing PRIMARY KEYs, UNIQUE INDEXes +# the response might be "no error", ER_DUP_KEY, ER_DUP_ENTRY. +# Our requirements: +# 1. We cannot abort whenever get an error message from the server. +# 2. We want the exact server message into the protocol. +# 3. We want abort testing if we know that a certain error must not happen. +# Common but unusable Solutions: +# a) --error 0, ER_DUP_KEY, ER_DUP_ENTRY +# <statment> +# We get no error message even if the statement fails. +# b) --error ER_DUP_KEY, ER_DUP_ENTRY +# <statment> +# We might get "got one of the expected errors". +# There are situations where the statement must be successful. +# c) --disable_abort_on_error +# <statment> +# --enable_abort_on_error +# And nothing extra +# We do not abort in case of unexpected server errors. +# +# Final solution: +# --disable_abort_on_error +# <statment> +# --enable_abort_on_error +# Check via error number if the error is not totally unexpected. +# The sub tests use $ER_DUP_KEY, $ER_DUP_ENTRY, etc. +# Assignment of values happen in this file. # -# 4. script checking if a certain table shows the expected behaviour -# ("usability" check): include/partition_check.inc -# - SELECT/INSERT/UPDATE/DELETE affecting single and multiple records -# - check of values of special interest like NULL etc. -# - INSERT/UPDATE with BEFORE/AFTER triggers -# - violations of UNIQUE constraints, if there are any defined -# - transactions ... -# - TRUNCATE/OPTIMIZE/.. -# - ... # # 3. How to analyze a partitioning bug revealed with these tests/ How to build -# a small replay script from the monstrous protocols ? +# a small replay script from the monstrous protocols ? #------------------------------------------------------------------------------# # a) crash -- use the file var/master-data/mysql/general_log.CSV # b) no crash, but unexpected server response (there is no "reject file) @@ -382,19 +421,19 @@ if (0) # protocolling of some queries. # In most cases you will find that the r/<testcase>.<log/reject> contains at # least a line "# # check <something>: 0". -# That means that a check within include/partition_check did not got the +# That means that a check within inc/partition_check did not got the # expected result. # A good start for a replay script would be # 1. Copy t/partition_<feature>_<engine>.test to t/my_test.test # 2. Edit t/my_test.test # - set $debug to 1 # - replace the line -# "--source include/partition_<feature>.inc" +# "--source inc/partition_<feature>.inc" # with all statements between the last # CREATE TABLE t1 statement (included this) # and the line -# "# Start usability test (include/partition_check.inc)" -# - add the content of include/partition_check.inc at the end. +# "# Start usability test (inc/partition_check.inc)" +# - add the content of inc/partition_check.inc at the end. # # Please excuse that the partitioning tests generate such huge protocols which # and are not very handy when it comes to bug analysis. I tried to squeez out diff --git a/mysql-test/include/partition_10.inc b/mysql-test/suite/parts/inc/partition_10.inc index 74b0fdf7f6a..2050c809463 100644 --- a/mysql-test/include/partition_10.inc +++ b/mysql-test/suite/parts/inc/partition_10.inc @@ -1,4 +1,4 @@ -# include/partition_10.inc +# inc/partition_10.inc # # Do some basic checks on a table. # @@ -10,7 +10,7 @@ # is like expected. # ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc ####### Variations with multiple records # Select on empty table @@ -50,20 +50,14 @@ eval UPDATE t1 SET f1 = $max_row + 2, f2 = 'ZZZZZZZ' WHERE f1 = 0 AND f2 = '#######'; # Select eval SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = $max_row + 2 AND f2 = 'ZZZZZZZ'; -if ($fixed_bug15968) -{ # Bug #15968: Partitions: crash when INSERT with f1 = -1 into PARTITION BY HASH(f1) eval UPDATE t1 SET f1 = 0 - 1, f2 = 'ZZZZZZZ' WHERE f1 = $max_row + 1 AND f2 = '#######'; # Select SELECT COUNT(*) AS my_value FROM t1 WHERE f1 = 0 - 1 AND f2 = 'ZZZZZZZ'; -} # Delete eval DELETE FROM t1 WHERE f1 = $max_row + 2 AND f2 = 'ZZZZZZZ'; -if ($fixed_bug15968) -{ DELETE FROM t1 WHERE f1 = 0 - 1 AND f2 = 'ZZZZZZZ'; -} # Select SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; diff --git a/mysql-test/include/partition_11.inc b/mysql-test/suite/parts/inc/partition_11.inc index 7ed4d882aa0..9f10f58a5f0 100644 --- a/mysql-test/include/partition_11.inc +++ b/mysql-test/suite/parts/inc/partition_11.inc @@ -1,4 +1,4 @@ -# include/partition_11.inc +# inc/partition_11.inc # # Try to create a table with the given partition number # @@ -13,7 +13,7 @@ let $run= `SELECT @my_errno = 0`; # If this operation was successfull, check + drop this table if ($run) { - --source include/partition_10.inc + --source suite/parts/inc/partition_10.inc eval DROP TABLE t1; } #### Try to create a table with the given subpartition number @@ -29,6 +29,6 @@ let $run= `SELECT @my_errno = 0`; # If this operation was successfull, check + drop this table if ($run) { - --source include/partition_10.inc + --source suite/parts/inc/partition_10.inc eval DROP TABLE t1; } diff --git a/mysql-test/include/partition_12.inc b/mysql-test/suite/parts/inc/partition_12.inc index 2a5610b82e1..c30990a61ef 100644 --- a/mysql-test/include/partition_12.inc +++ b/mysql-test/suite/parts/inc/partition_12.inc @@ -1,10 +1,10 @@ -# include/partition_12.inc +# inc/partition_12.inc # # Do some basic things on a table, if the SQL command executed just before # sourcing this file was successful. # ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc ####### Variations with multiple records # (mass) Insert max_row_div2 + 1 records @@ -42,20 +42,14 @@ eval UPDATE t1 SET f1 = $max_row + 2, f2 = 'ZZZZZZZ' WHERE f1 = 0 AND f2 = '#######'; # Select eval SELECT COUNT(*) = 1 AS my_value FROM t1 WHERE f1 = $max_row + 2 AND f2 = 'ZZZZZZZ'; -if ($fixed_bug15968) -{ # Bug #15968: Partitions: crash when INSERT with f1 = -1 into PARTITION BY HASH(f1) eval UPDATE t1 SET f1 = 0 - 1, f2 = 'ZZZZZZZ' WHERE f1 = $max_row + 1 AND f2 = '#######'; # Select SELECT COUNT(*) AS my_value FROM t1 WHERE f1 = 0 - 1 AND f2 = 'ZZZZZZZ'; -} # Delete eval DELETE FROM t1 WHERE f1 = $max_row + 2 AND f2 = 'ZZZZZZZ'; -if ($fixed_bug15968) -{ DELETE FROM t1 WHERE f1 = 0 - 1 AND f2 = 'ZZZZZZZ'; -} # Select SELECT COUNT(*) = 0 AS my_value FROM t1 WHERE f2 = 'ZZZZZZZ'; diff --git a/mysql-test/suite/parts/inc/partition_20.inc b/mysql-test/suite/parts/inc/partition_20.inc index 7901b332a11..cc820b8312b 100644 --- a/mysql-test/suite/parts/inc/partition_20.inc +++ b/mysql-test/suite/parts/inc/partition_20.inc @@ -1,10 +1,11 @@ ################################################################################ -# include/partition_20.inc # +# inc/partition_20.inc # # # # Purpose: # -# Auxiliary script, only useful when sourced by include/partition_check.inc. # +# Auxiliary script, only useful when sourced by # +# suite/parts/inc/partition_check.inc. # # # -# 1. Check if the preceeding statement caused that the expected number of # +# 1. Check if the preceding statement caused that the expected number of # # records was # # - inserted # # - updated or deleted+inserted # @@ -17,19 +18,13 @@ # must be set before sourcing this routine. # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # # Change: # ################################################################################ -# include/partition_20.inc -# -# Auxiliary script, only useful when sourced by include/partition_check.inc. -# - -# Check of preceeding statement via Select if ($no_debug) { --disable_query_log diff --git a/mysql-test/suite/parts/inc/partition_alter1.inc b/mysql-test/suite/parts/inc/partition_alter1.inc index a9706d5eb98..e3ec924f346 100644 --- a/mysql-test/suite/parts/inc/partition_alter1.inc +++ b/mysql-test/suite/parts/inc/partition_alter1.inc @@ -1,12 +1,12 @@ ################################################################################ -# include/partition_alter1.inc # +# inc/partition_alter1.inc # # # # Purpose: # # ADD/DROP PRIMARY KEYs and/or UNIQUE INDEXes tests on partitioned tables # # This routine is only useful for the partition_<feature>_<engine> tests. # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -26,7 +26,7 @@ --echo # within the partitioning function --echo #------------------------------------------------------------------------ # Rule: Only f_int1 is used within the partitioning function -# ---> include/partition_alter_11.inc +# ---> inc/partition_alter_11.inc if ($do_pk_tests) { # The value of the following test is maybe covered by 1.1.3. @@ -35,12 +35,10 @@ if ($do_pk_tests) --echo # 1.1.1 PRIMARY KEY consisting of one column let $alter= ALTER TABLE t1 ADD PRIMARY KEY(f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } # This must fail, because PRIMARY KEY does not contain f_int1 let $alter= ALTER TABLE t1 ADD PRIMARY KEY(f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } # The value of the following test is maybe covered by 1.1.4. if ($more_pk_ui_tests) @@ -48,65 +46,52 @@ if ($more_pk_ui_tests) --echo # 1.1.2 UNIQUE INDEX consisting of one column let $alter= ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } # This must fail, because UNIQUE INDEX does not contain f_int1 let $alter= ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc if ($do_pk_tests) { --echo # 1.1.3 PRIMARY KEY consisting of two columns let $alter= ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $alter= ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } --echo # 1.1.4 UNIQUE INDEX consisting of two columns let $alter= ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc let $alter= ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc # --echo #------------------------------------------------------------------------ --echo # 1.2 ADD PRIMARY KEY or UNIQUE INDEX to table with two columns --echo # (f_int1 and f_int2) within the partitioning function --echo #------------------------------------------------------------------------ # Rule: f_int1 and f_int2 is used within the partitioning function -# ---> include/partition_alter_13.inc +# ---> inc/partition_alter_13.inc if ($do_pk_tests) { --echo # 1.2.1 PRIMARY KEY consisting of two columns let $alter= ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $alter= ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } --echo # 1.2.2 UNIQUE INDEX consisting of two columns let $alter= ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc let $alter= ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc if ($do_pk_tests) { --echo # 1.2.3 PRIMARY KEY and UNIQUE INDEX consisting of two columns let $alter= ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_int1); --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $alter= ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_int2); --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $unique= ; --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } # # @@ -122,7 +107,7 @@ if ($do_pk_tests) --echo # 2.1 Partitioning function contains one column(f_int1) --echo #------------------------------------------------------------------------ # Rule: Only f_int1 is used within the partitioning function -# ---> include/partition_alter_11.inc +# ---> inc/partition_alter_11.inc # The value of the following test is maybe covered by 2.1.5. if ($more_pk_ui_tests) { @@ -132,14 +117,12 @@ if ($more_pk_ui_tests) let $unique= , PRIMARY KEY(f_int1); let $alter= ALTER TABLE t1 DROP PRIMARY KEY; --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } # --echo # 2.1.2 DROP UNIQUE INDEX consisting of one column let $unique= , UNIQUE INDEX uidx1 (f_int1); let $alter= ALTER TABLE t1 DROP INDEX uidx1; --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc # if ($do_pk_tests) { @@ -147,20 +130,16 @@ if ($more_pk_ui_tests) let $alter= ALTER TABLE t1 DROP PRIMARY KEY; let $unique= , PRIMARY KEY(f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $unique= , PRIMARY KEY(f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } # --echo # 2.1.4 DROP UNIQUE INDEX consisting of two columns let $alter= ALTER TABLE t1 DROP INDEX uidx1; let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } # if ($do_pk_tests) @@ -169,42 +148,35 @@ if ($do_pk_tests) let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1); let $alter= ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2); let $alter= ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1); let $alter= ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc # --echo #------------------------------------------------------------------------ --echo # 2.2 Partitioning function contains two columns (f_int1,f_int2) --echo #------------------------------------------------------------------------ # Rule: f_int1 and f_int2 is used within the partitioning function -# ---> include/partition_alter_13.inc +# ---> inc/partition_alter_13.inc if ($do_pk_tests) { --echo # 2.2.1 DROP PRIMARY KEY consisting of two columns let $alter= ALTER TABLE t1 DROP PRIMARY KEY; let $unique= , PRIMARY KEY(f_int1,f_int2); --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $unique= , PRIMARY KEY(f_int2,f_int1); --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } # --echo # 2.2.2 DROP UNIQUE INDEX consisting of two columns let $alter= ALTER TABLE t1 DROP INDEX uidx1; let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2); --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1); --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc # if ($do_pk_tests) { @@ -212,26 +184,23 @@ if ($do_pk_tests) let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1); let $alter= ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2); let $alter= ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1); let $alter= ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc if (0) { --echo --echo #======================================================================== --echo # 3. ALTER TABLE "ALTER" PRIMARY KEY ---echo # ML: I think that an ALTER TABLE statement where a PRIMARY KEY is ---echo # dropped and recreated (with different layout) might be of ---echo # interest, if the tree containing the table data has to be ---echo # reorganized during this operation. +--echo # mleich: I think that an ALTER TABLE statement where a PRIMARY +--echo # KEY is dropped and recreated (with different layout) might +--echo # be of interest, if the tree containing the table data has +--echo # to be reorganized during this operation. --echo # To be implemented --echo #======================================================================== --echo diff --git a/mysql-test/suite/parts/inc/partition_alter2.inc b/mysql-test/suite/parts/inc/partition_alter2.inc index 3e01c3972bc..3960b8e8a09 100644 --- a/mysql-test/suite/parts/inc/partition_alter2.inc +++ b/mysql-test/suite/parts/inc/partition_alter2.inc @@ -1,12 +1,12 @@ ################################################################################ -# include/partition_alter2.inc # +# inc/partition_alter2.inc # # # # Purpose: # # Tests where the columns used within the partitioning function are altered. # # This routine is only useful for the partition_<feature>_<engine> tests. .# # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -22,12 +22,11 @@ --echo # 1.1 ALTER column f_int2 not used in partitioning function --echo #------------------------------------------------------------------------ # Rule: Only f_int1 is used within the partitioning function -# ---> include/partition_alter_11.inc +# ---> inc/partition_alter_11.inc let $alter= ALTER TABLE t1 MODIFY f_int2 BIGINT; --echo # 1.1.1 no PRIMARY KEY or UNIQUE INDEX exists let $unique= ; --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc # if ($do_pk_tests) { @@ -38,14 +37,11 @@ if ($do_pk_tests) { let $unique= , PRIMARY KEY (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } let $unique= , PRIMARY KEY (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $unique= , PRIMARY KEY (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } # --echo # 1.1.3 UNIQUE INDEX exists @@ -55,14 +51,11 @@ if ($more_pk_ui_tests) { let $unique= , UNIQUE INDEX uidx1 (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc # if ($more_pk_ui_tests) { @@ -71,47 +64,35 @@ if ($more_pk_ui_tests) --echo # 1.2 ALTER column f_int1 used in partitioning function --echo #------------------------------------------------------------------------ # Rule: Only f_int1 is used within the partitioning function - # ---> include/partition_alter_11.inc + # ---> inc/partition_alter_11.inc let $alter= ALTER TABLE t1 MODIFY f_int1 BIGINT; --echo # 1.2.1 no PRIMARY KEY or UNIQUE INDEX exists let $unique= ; --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc # if ($do_pk_tests) { --echo # 1.2.2 PRIMARY KEY exists let $unique= , PRIMARY KEY (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $unique= , PRIMARY KEY (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $unique= , PRIMARY KEY (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } # --echo # 1.2.3 UNIQUE INDEX exists let $unique= , UNIQUE INDEX uidx (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $unique= , UNIQUE INDEX uidx (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $unique= , UNIQUE INDEX uidx (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } # --echo #------------------------------------------------------------------------ @@ -119,14 +100,12 @@ if ($more_pk_ui_tests) --echo # f_int1 or (f_int1 and f_int2) used in partitioning function --echo #------------------------------------------------------------------------ # Rule: f_int1 and f_int2 is used within the partitioning function -# ---> include/partition_alter_13.inc +# ---> inc/partition_alter_13.inc let $alter= ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; --echo # 1.3.1 no PRIMARY KEY or UNIQUE INDEX exists let $unique= ; --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc # if ($do_pk_tests) { @@ -137,18 +116,13 @@ if ($do_pk_tests) { let $unique= , PRIMARY KEY (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } let $unique= , PRIMARY KEY (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $unique= , PRIMARY KEY (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } # --echo # 1.3.3 UNIQUE INDEX exists @@ -158,18 +132,13 @@ if ($more_pk_ui_tests) { let $unique= , UNIQUE INDEX uidx (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } let $unique= , UNIQUE INDEX uidx (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc let $unique= , UNIQUE INDEX uidx (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc --echo --echo #======================================================================== @@ -180,12 +149,11 @@ let $unique= , UNIQUE INDEX uidx (f_int2,f_int1); --echo # 2.1 ALTER column f_int2 not used in partitioning function --echo #------------------------------------------------------------------------ # Rule: Only f_int1 is used within the partitioning function -# ---> include/partition_alter_11.inc +# ---> inc/partition_alter_11.inc let $alter= ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; --echo # 2.1.1 no PRIMARY KEY or UNIQUE INDEX exists let $unique= ; --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc # if ($do_pk_tests) { @@ -196,14 +164,11 @@ if ($do_pk_tests) --echo # 2.1.2 PRIMARY KEY exists let $unique= , PRIMARY KEY (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } let $unique= , PRIMARY KEY (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $unique= , PRIMARY KEY (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } # --echo # 2.1.3 UNIQUE INDEX exists @@ -213,14 +178,11 @@ if ($more_pk_ui_tests) { let $unique= , UNIQUE INDEX uidx1 (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc # if ($more_pk_ui_tests) { @@ -229,61 +191,47 @@ if ($more_pk_ui_tests) --echo # 2.2 ALTER column f_int1 used in partitioning function --echo #------------------------------------------------------------------------ # Rule: Only f_int1 is used within the partitioning function - # ---> include/partition_alter_11.inc + # ---> inc/partition_alter_11.inc let $alter= ALTER TABLE t1 MODIFY f_int1 MEDIUMINT; --echo # 2.2.1 no PRIMARY KEY or UNIQUE INDEX exists let $unique= ; --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc # if ($do_pk_tests) { --echo # 2.2.2 PRIMARY KEY exists let $unique= , PRIMARY KEY (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $unique= , PRIMARY KEY (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $unique= , PRIMARY KEY (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } # --echo # 2.2.3 UNIQUE INDEX exists let $unique= , UNIQUE INDEX uidx (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc let $unique= , UNIQUE INDEX uidx (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $unique= , UNIQUE INDEX uidx (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } # --echo #------------------------------------------------------------------------ --echo # 2.3 ALTER column f_int1 and f_int2 used in partitioning function --echo #------------------------------------------------------------------------ # Rule: f_int1 and f_int2 is used within the partitioning function -# ---> include/partition_alter_13.inc +# ---> inc/partition_alter_13.inc let $alter= ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; --echo # 2.3.1 no PRIMARY KEY or UNIQUE INDEX exists let $unique= ; --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc # if ($do_pk_tests) { @@ -295,17 +243,12 @@ if ($do_pk_tests) let $unique= , PRIMARY KEY (f_int1); --source suite/parts/inc/partition_alter_11.inc } - # --source include/partition_alter_11.inc let $unique= , PRIMARY KEY (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc let $unique= , PRIMARY KEY (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc - # --source include/partition_alter_13.inc } # --echo # 2.3.3 UNIQUE INDEX exists @@ -315,18 +258,13 @@ if ($more_pk_ui_tests) { let $unique= , UNIQUE INDEX uidx (f_int1); --source suite/parts/inc/partition_alter_11.inc - # --source include/partition_alter_11.inc } let $unique= , UNIQUE INDEX uidx (f_int1,f_int2); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc let $unique= , UNIQUE INDEX uidx (f_int2,f_int1); --source suite/parts/inc/partition_alter_11.inc -# --source include/partition_alter_11.inc --source suite/parts/inc/partition_alter_13.inc -# --source include/partition_alter_13.inc # if (0) @@ -338,8 +276,8 @@ if (0) --echo # INTEGER --> FLOAT --echo # INTEGER --> DECIMAL --echo # INTEGER --> VARCHAR ---echo # ML: I assume that at least the first two variants are of some ---echo # interest. But I am unsure if the server allows such +--echo # mleich: I assume that at least the first two variants are of +--echo # some interest. But I am unsure if the server allows such --echo # conversions. I also think that such operations have a --echo # conversions very small likelihood. --echo # To be implemented. diff --git a/mysql-test/suite/parts/inc/partition_alter3.inc b/mysql-test/suite/parts/inc/partition_alter3.inc index 4b1539f4260..1fad361b371 100644 --- a/mysql-test/suite/parts/inc/partition_alter3.inc +++ b/mysql-test/suite/parts/inc/partition_alter3.inc @@ -1,11 +1,11 @@ ################################################################################ -# include/partition_alter3.inc # +# inc/partition_alter3.inc # # # # Purpose: # # Tests for partition management commands for HASH and KEY partitioning # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-04-11 # # Change Author: # # Change Date: # @@ -32,7 +32,7 @@ SELECT IF(9999 - 1000 + 1 > @max_row, @max_row , 9999 - 1000 + 1) INTO @exp_row_count; # DEBUG SELECT @exp_row_count; # 4. Print the layout, check Readability ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read1.inc # --echo #------------------------------------------------------------------------ @@ -44,16 +44,16 @@ ALTER TABLE t1 ADD PARTITION (PARTITION part2); # --echo # 1.1.2 Assign HASH partitioning ALTER TABLE t1 PARTITION BY HASH(YEAR(f_date)); ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read1.inc # --echo # 1.1.3 Assign other HASH partitioning to already partitioned table --echo # + test and switch back + test ALTER TABLE t1 PARTITION BY HASH(DAYOFYEAR(f_date)); ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read1.inc ALTER TABLE t1 PARTITION BY HASH(YEAR(f_date)); ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read1.inc # --echo # 1.1.4 Add PARTITIONS not fitting to HASH --> must fail @@ -64,7 +64,7 @@ ALTER TABLE t1 ADD PARTITION (PARTITION part2 VALUES LESS THAN (0)); # --echo # 1.1.5 Add two named partitions + test ALTER TABLE t1 ADD PARTITION (PARTITION part1, PARTITION part7); ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read1.inc # --echo # 1.1.6 Add two named partitions, name clash --> must fail @@ -73,12 +73,12 @@ ALTER TABLE t1 ADD PARTITION (PARTITION part1, PARTITION part7); # --echo # 1.1.7 Add one named partition + test ALTER TABLE t1 ADD PARTITION (PARTITION part2); ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read1.inc # --echo # 1.1.8 Add four not named partitions + test ALTER TABLE t1 ADD PARTITION PARTITIONS 4; ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read1.inc --echo #------------------------------------------------------------------------ @@ -89,7 +89,7 @@ ALTER TABLE t1 ADD PARTITION PARTITIONS 4; ALTER TABLE t1 DROP PARTITION part1; # --echo # 1.2.2 COALESCE PARTITION partitionname is not supported ---error 1064 +--error ER_PARSE_ERROR ALTER TABLE t1 COALESCE PARTITION part1; # --echo # 1.2.3 Decrease by 0 is non sense --> must fail @@ -101,7 +101,7 @@ let $loop= 7; while ($loop) { ALTER TABLE t1 COALESCE PARTITION 1; - --source include/partition_layout.inc + --source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read1.inc dec $loop; } @@ -111,14 +111,13 @@ ALTER TABLE t1 COALESCE PARTITION 1; # --echo # 1.2.6 Remove partitioning ALTER TABLE t1 REMOVE PARTITIONING; ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read1.inc # --echo # 1.2.7 Remove partitioning from not partitioned table --> ???? ALTER TABLE t1 REMOVE PARTITIONING; DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc -# --source suite/parts/inc/partition_check_drop.inc --echo --echo #======================================================================== @@ -134,7 +133,7 @@ $column_list # 2. Fill the table t1 with some records eval $insert_all; # 4. Print the layout, check Readability ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read2.inc # --echo #------------------------------------------------------------------------ @@ -143,7 +142,7 @@ eval $insert_all; --echo #------------------------------------------------------------------------ --echo # 2.1.1 Assign KEY partitioning ALTER TABLE t1 PARTITION BY KEY(f_int1); ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read2.inc # --echo # 2.1.2 Add PARTITIONS not fitting to KEY --> must fail @@ -154,17 +153,17 @@ ALTER TABLE t1 ADD PARTITION (PARTITION part2 VALUES LESS THAN (0)); # --echo # 2.1.3 Add two named partitions + test ALTER TABLE t1 ADD PARTITION (PARTITION part1, PARTITION part7); ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read2.inc # --echo # 2.1.4 Add one named partition + test ALTER TABLE t1 ADD PARTITION (PARTITION part2); ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read2.inc # --echo # 2.1.5 Add four not named partitions + test ALTER TABLE t1 ADD PARTITION PARTITIONS 4; ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read2.inc --echo #------------------------------------------------------------------------ @@ -180,7 +179,7 @@ let $loop= 7; while ($loop) { ALTER TABLE t1 COALESCE PARTITION 1; - --source include/partition_layout.inc + --source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read2.inc dec $loop; } @@ -190,12 +189,11 @@ ALTER TABLE t1 COALESCE PARTITION 1; # --echo # 2.2.6 Remove partitioning ALTER TABLE t1 REMOVE PARTITIONING; ---source include/partition_layout.inc +--source suite/parts/inc/partition_layout.inc --source suite/parts/inc/partition_check_read2.inc # --echo # 2.2.7 Remove partitioning from not partitioned table --> ???? ALTER TABLE t1 REMOVE PARTITIONING; DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc -# --source suite/parts/inc/partition_check_drop.inc diff --git a/mysql-test/suite/parts/inc/partition_alter4.inc b/mysql-test/suite/parts/inc/partition_alter4.inc index e6f5dadbcca..040c13d69d6 100644 --- a/mysql-test/suite/parts/inc/partition_alter4.inc +++ b/mysql-test/suite/parts/inc/partition_alter4.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_alter1.inc # +# inc/partition_alter1.inc # # # # Purpose: # # Execute ALTER ... OPTIMIZE/CHECK/REBUID/ANALYZE statements (maintenance) # @@ -22,19 +22,15 @@ --echo # 1.1 ALTER ... ANALYZE PARTITION part_1; let $alter= ALTER TABLE t1 ANALYZE PARTITION part_1; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 1.2 ALTER ... ANALYZE PARTITION part_1,part_2; let $alter= ALTER TABLE t1 ANALYZE PARTITION part_1,part_2; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 1.3 ALTER ... ANALYZE PARTITION part_1,part_2,part_5,part_6,part_10; let $alter= ALTER TABLE t1 ANALYZE PARTITION part_1,part_2,part_5,part_6,part_10; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 1.4 ALTER ... ANALYZE PARTITION part_1,part_1,part_1; let $alter= ALTER TABLE t1 ANALYZE PARTITION part_1,part_1,part_1; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo #------------------------------------------------------------------------ --echo # 2 ALTER ... CHECK PARTITION @@ -42,19 +38,15 @@ let $alter= ALTER TABLE t1 ANALYZE PARTITION part_1,part_1,part_1; --echo # 2.1 ALTER ... CHECK PARTITION part_1; let $alter= ALTER TABLE t1 CHECK PARTITION part_1; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 2.2 ALTER ... CHECK PARTITION part_1,part_2; let $alter= ALTER TABLE t1 CHECK PARTITION part_1,part_2; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 2.3 ALTER ... CHECK PARTITION part_1,part_2,part_5,part_6,part_10; let $alter= ALTER TABLE t1 CHECK PARTITION part_1,part_2,part_5,part_6,part_10; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 2.4 ALTER ... CHECK PARTITION part_1,part_1,part_1; let $alter= ALTER TABLE t1 CHECK PARTITION part_1,part_1,part_1; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo #------------------------------------------------------------------------ --echo # 3 ALTER ... OPTIMIZE PARTITION @@ -62,19 +54,15 @@ let $alter= ALTER TABLE t1 CHECK PARTITION part_1,part_1,part_1; --echo # 3.1 ALTER ... OPTIMIZE PARTITION part_1; let $alter= ALTER TABLE t1 OPTIMIZE PARTITION part_1; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 3.2 ALTER ... OPTIMIZE PARTITION part_1,part_2; let $alter= ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_2; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 3.3 ALTER ... OPTIMIZE PARTITION part_1,part_2,part_5,part_6,part_10; let $alter= ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_2,part_5,part_6,part_10; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 3.4 ALTER ... OPTIMIZE PARTITION part_1,part_1,part_1; let $alter= ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_1,part_1; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo #------------------------------------------------------------------------ --echo # 4 ALTER ... REBUILD PARTITION @@ -82,19 +70,15 @@ let $alter= ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_1,part_1; --echo # 4.1 ALTER ... REBUILD PARTITION part_1; let $alter= ALTER TABLE t1 REBUILD PARTITION part_1; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 4.2 ALTER ... REBUILD PARTITION part_1,part_2; let $alter= ALTER TABLE t1 REBUILD PARTITION part_1,part_2; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 4.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; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo # 4.4 ALTER ... REBUILD PARTITION part_1,part_1,part_1; let $alter= ALTER TABLE t1 REBUILD PARTITION part_1,part_1,part_1; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo #------------------------------------------------------------------------ --echo # 5 ALTER ... REPAIR PARTITION @@ -102,19 +86,15 @@ let $alter= ALTER TABLE t1 REBUILD PARTITION part_1,part_1,part_1; --echo # 5.1 ALTER ... REBUILD PARTITION part_1; let $alter= ALTER TABLE t1 REBUILD PARTITION part_1; --source suite/parts/inc/partition_alter_41.inc -# --source include/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; --source suite/parts/inc/partition_alter_41.inc -# --source include/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; --source suite/parts/inc/partition_alter_41.inc -# --source include/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; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc --echo #------------------------------------------------------------------------ --echo # 6 ALTER ... REMOVE PARTITIONING @@ -122,5 +102,4 @@ let $alter= ALTER TABLE t1 REBUILD PARTITION part_1,part_1,part_1; --echo # 6.1 ALTER ... REMOVE PARTITIONING; let $alter= ALTER TABLE t1 REMOVE PARTITIONING; --source suite/parts/inc/partition_alter_41.inc -# --source include/partition_alter_41.inc diff --git a/mysql-test/suite/parts/inc/partition_alter_1.inc b/mysql-test/suite/parts/inc/partition_alter_1.inc index 206073d6775..b62efd24072 100644 --- a/mysql-test/suite/parts/inc/partition_alter_1.inc +++ b/mysql-test/suite/parts/inc/partition_alter_1.inc @@ -1,17 +1,17 @@ ################################################################################ -# include/partition_alter_1.inc # +# inc/partition_alter_1.inc # # # # Purpose: # # Alter a partioned table and check the usability afterwards # # This script is only usefule when sourced by # -# include/partition_alter_1[1|3].inc # +# inc/partition_alter_1[1|3].inc # # # # 0. Expect there is a table t1 # # 1. Insert the first half of the table t0_template into t1 # # 2. Execute the ALTER TABLE statement within the variable $alter # # Case SQL code in # # 0: 1. Insert the second half of the table t0_template into t1 # -# 2. Execute the usability test include/partition_check.inc # +# 2. Execute the usability test inc/partition_check.inc # # >0, but expected: nothing # # >0 and unexpected: abort # # 3. DROP the table t1 # @@ -20,10 +20,10 @@ # Example: # # CREATE TABLE t1 (f_int1 INT,f_int2 INT, .... ); # # let $alter= ALTER TABLE t1 ADD PRIMARY KEY(f_int2); # -# include/partition_alter_1.inc # +# inc/partition_alter_1.inc # # # # The parameters $insert_first_half and $insert_second_half # -# are also to be set outside (source ./include/partition.pre). # +# are also to be set outside (source ./inc/partition.pre). # # # #------------------------------------------------------------------------------# # Original Author: mleich # @@ -50,13 +50,15 @@ if ($no_debug) } eval SET @my_errno = $mysql_errno; let $run_test= `SELECT @my_errno = 0`; -let $unexpected_error= `SELECT @my_errno NOT IN (0,1030,1502,1506)`; -if ($unexpected_error) +if (`SELECT @my_errno NOT IN (0,$ER_GET_ERRNO, + $ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF, + $ER_DROP_PARTITION_NON_EXISTENT)`); { --echo # The last command got an unexepected error response. - --echo # Expected/handled SQL codes are 0,1030,1502,1506 + --echo # Expected/handled SQL codes are 0,$ER_GET_ERRNO,$ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF,$ER_DROP_PARTITION_NON_EXISTENT SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; --echo # Sorry, have to abort. + --echo # Please check the error name to number mapping in inc/partition.pre. exit; --echo } @@ -66,6 +68,5 @@ if ($run_test) { eval $insert_second_half; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc } DROP TABLE t1; diff --git a/mysql-test/suite/parts/inc/partition_alter_11.inc b/mysql-test/suite/parts/inc/partition_alter_11.inc index f26d8e822ae..c7dd2d1d15f 100644 --- a/mysql-test/suite/parts/inc/partition_alter_11.inc +++ b/mysql-test/suite/parts/inc/partition_alter_11.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_alter_11.inc # +# inc/partition_alter_11.inc # # # # Purpose: # # Check ALTER partitioned table and the state of the table afterwards # @@ -10,7 +10,7 @@ # PARTITION BY RANGE/LIST ... SUBPARTITION BY HASH/KEY ... # # do # # 1. Create the partitioned table # -# 2. Execute include/partition_alter_1.inc, which will # +# 2. Execute inc/partition_alter_1.inc, which will # # - Insert the first half of the table t0_template into t1 # # - Execute the ALTER TABLE statement # # - Insert the second half of the table t0_template into t1 # @@ -26,14 +26,14 @@ # Example: # # let $unique= , UNIQUE INDEX uidx1 (f_int1); # # let $alter= ALTER TABLE t1 DROP UNIQUE INDEX uidx1; # -# include/partition_alter1.inc # +# inc/partition_alter1.inc # # # # Attention: The routine include/partition_alter_13.inc is very similar # # to this one. So if something has to be changed here it # # might be necessary to do it also there # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -56,7 +56,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY KEY if ($with_partitioning) @@ -69,7 +68,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY LIST if ($with_partitioning) @@ -90,7 +88,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY RANGE if ($with_partitioning) @@ -112,7 +109,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY RANGE -- SUBPARTITION BY HASH if ($with_partitioning) @@ -133,7 +129,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY if ($with_partitioning) @@ -157,7 +152,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY LIST -- SUBPARTITION BY HASH if ($with_partitioning) @@ -178,7 +172,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY LIST -- SUBPARTITION BY KEY if ($with_partitioning) @@ -199,4 +192,3 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc diff --git a/mysql-test/suite/parts/inc/partition_alter_13.inc b/mysql-test/suite/parts/inc/partition_alter_13.inc index 5152230795a..cfc622a7c82 100644 --- a/mysql-test/suite/parts/inc/partition_alter_13.inc +++ b/mysql-test/suite/parts/inc/partition_alter_13.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_alter_13.inc # +# inc/partition_alter_13.inc # # # # Purpose: # # Check ALTER partitioned table and the state of the table afterwards # @@ -10,7 +10,7 @@ # PARTITION BY RANGE/LIST ... SUBPARTITION BY HASH/KEY ... # # do # # 1. Create the partitioned table # -# 2. Execute include/partition_alter_1.inc, which will # +# 2. Execute inc/partition_alter_1.inc, which will # # - Insert the first half of the table t0_template into t1 # # - Execute the ALTER TABLE statement # # - Insert the second half of the table t0_template into t1 # @@ -26,14 +26,14 @@ # Example: # # let $unique= , UNIQUE INDEX uidx1 (f_int1); # # let $alter= ALTER TABLE t1 DROP UNIQUE INDEX uidx1; # -# include/partition_alter1.inc # +# inc/partition_alter1.inc # # # # Attention: The routine include/partition_alter_11.inc is very similar # # to this one. So if something has to be changed here it # # might be necessary to do it also there # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -56,7 +56,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY KEY if ($with_partitioning) @@ -69,7 +68,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY LIST if ($with_partitioning) @@ -90,7 +88,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY RANGE if ($with_partitioning) @@ -112,7 +109,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY RANGE -- SUBPARTITION BY HASH if ($with_partitioning) @@ -133,7 +129,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY if ($with_partitioning) @@ -157,7 +152,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY LIST -- SUBPARTITION BY HASH if ($with_partitioning) @@ -178,7 +172,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY LIST -- SUBPARTITION BY KEY if ($with_partitioning) @@ -199,4 +192,3 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc diff --git a/mysql-test/suite/parts/inc/partition_alter_41.inc b/mysql-test/suite/parts/inc/partition_alter_41.inc index 303ec8c2062..53469c08a19 100644 --- a/mysql-test/suite/parts/inc/partition_alter_41.inc +++ b/mysql-test/suite/parts/inc/partition_alter_41.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_alter_11.inc # +# inc/partition_alter_11.inc # # # # Purpose: # # Check ALTER partitioned table and the state of the table afterwards # @@ -10,11 +10,11 @@ # PARTITION BY RANGE/LIST ... SUBPARTITION BY HASH/KEY ... # # do # # 1. Create the partitioned table # -# 2. Execute include/partition_alter_1.inc, which will # +# 2. Execute inc/partition_alter_1.inc, which will # # - Insert the first half of the table t0_template into t1 # # - Execute the ALTER TABLE statement # # - Insert the second half of the table t0_template into t1 # -# - Execute the usability test include/partition_check.inc # +# - Execute the usability test inc/partition_check.inc # # - Drop the table t1 # # done # # # @@ -26,14 +26,14 @@ # Example: # # let $unique= , UNIQUE INDEX uidx1 (f_int1); # # let $alter= ALTER TABLE t1 DROP UNIQUE INDEX uidx1; # -# include/partition_alter1.inc # +# inc/partition_alter1.inc # # # -# Attention: The routine include/partition_alter_13.inc is very similar # +# Attention: The routine inc/partition_alter_13.inc is very similar # # to this one. So if something has to be changed here it # # might be necessary to do it also there # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -56,7 +56,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY KEY if ($with_partitioning) @@ -69,7 +68,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY LIST if ($with_partitioning) @@ -90,7 +88,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY RANGE if ($with_partitioning) @@ -112,7 +109,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY RANGE -- SUBPARTITION BY HASH if ($with_partitioning) @@ -133,7 +129,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY if ($with_partitioning) @@ -157,7 +152,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY LIST -- SUBPARTITION BY HASH if ($with_partitioning) @@ -178,7 +172,6 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc #----------- PARTITION BY LIST -- SUBPARTITION BY KEY if ($with_partitioning) @@ -199,4 +192,3 @@ $unique ) $partitioning; --source suite/parts/inc/partition_alter_1.inc -# --source include/partition_alter_1.inc diff --git a/mysql-test/suite/parts/inc/partition_basic.inc b/mysql-test/suite/parts/inc/partition_basic.inc index 9854edab634..a5815d3b71c 100644 --- a/mysql-test/suite/parts/inc/partition_basic.inc +++ b/mysql-test/suite/parts/inc/partition_basic.inc @@ -1,12 +1,12 @@ ################################################################################ -# include/partition_basic.inc # +# inc/partition_basic.inc # # # # Purpose: # # Basic tests around create partitioned table with/without PRIMARY KEY and # # /or UNIQUE INDEX # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -29,7 +29,6 @@ --echo # 1.1 The partitioning function contains one column. let $unique= ; --source suite/parts/inc/partition_methods1.inc -# --source include/partition_methods1.inc # --echo # 1.1.1 with DATA DIECTORY/INDEX DIRECTORY # @@ -50,16 +49,13 @@ let $unique= ; let $with_directories= 1; --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc --source suite/parts/inc/partition_directory.inc - # --source include/partition_methods1.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 -# --source include/partition_methods2.inc # --echo #------------------------------------------------------------------------ --echo # 2 Tables with PRIMARY KEY and/or UNIQUE INDEXes @@ -72,12 +68,10 @@ if ($more_pk_ui_tests) --echo # 2.1 PRIMARY KEY consisting of one column let $unique= , PRIMARY KEY(f_int1); --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc } --echo # 2.2 UNIQUE INDEX consisting of one column let $unique= , UNIQUE INDEX uidx1 (f_int1); --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc --echo # 2.2.1 with DATA DIECTORY/INDEX DIRECTORY # @@ -98,7 +92,6 @@ if ($more_pk_ui_tests) let $with_directories= TRUE; --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc let $with_directories= FALSE; --enable_query_log # @@ -107,19 +100,15 @@ if ($more_pk_ui_tests) --echo # 2.3 PRIMARY KEY consisting of two columns let $unique= , PRIMARY KEY(f_int1,f_int2); --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc let $unique= , PRIMARY KEY(f_int2,f_int1); --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc } # --echo # 2.4 UNIQUE INDEX consisting of two columns let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2); --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1); --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc # } --echo # 2.5 PRIMARY KEY + UNIQUE INDEX consisting of two columns @@ -127,14 +116,11 @@ if ($do_pk_tests) { let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1); --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2); --source suite/parts/inc/partition_methods1.inc - # --source include/partition_methods1.inc } let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1); --source suite/parts/inc/partition_methods1.inc -# --source include/partition_methods1.inc --echo #------------------------------------------------------------------------ --echo # 3 Tables with PRIMARY KEY and/or UNIQUE INDEXes @@ -148,20 +134,16 @@ if ($more_pk_ui_tests) --echo # 3.1 PRIMARY KEY consisting of two columns let $unique= , PRIMARY KEY(f_int1,f_int2); --source suite/parts/inc/partition_methods2.inc - # --source include/partition_methods2.inc let $unique= , PRIMARY KEY(f_int2,f_int1); --source suite/parts/inc/partition_methods2.inc - # --source include/partition_methods2.inc } # --echo # 3.2 UNIQUE INDEX consisting of two columns let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2); --source suite/parts/inc/partition_methods2.inc - # --source include/partition_methods2.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1); --source suite/parts/inc/partition_methods2.inc - # --source include/partition_methods2.inc } # --echo # 3.3 PRIMARY KEY and UNIQUE INDEX consisting of two columns @@ -169,11 +151,8 @@ if ($do_pk_tests) { let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1); --source suite/parts/inc/partition_methods2.inc - # --source include/partition_methods2.inc let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2); --source suite/parts/inc/partition_methods2.inc - # --source include/partition_methods2.inc } let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1); --source suite/parts/inc/partition_methods2.inc -# --source include/partition_methods2.inc diff --git a/mysql-test/suite/parts/inc/partition_binary.inc b/mysql-test/suite/parts/inc/partition_binary.inc index 7243d6c2ce7..3ee363927c4 100644 --- a/mysql-test/suite/parts/inc/partition_binary.inc +++ b/mysql-test/suite/parts/inc/partition_binary.inc @@ -1,3 +1,5 @@ +--echo ---- Partitioning and binary data type + --disable_query_log # DATA DIRECTORY eval SET @data_dir = 'DATA DIRECTORY = @@ -43,6 +45,9 @@ select count(*) from t2; select hex(a) from t2; drop table t2; +# mleich: Several partitioning functions are no more allowed. +if (0) +{ eval create table t3 (a binary(255) not null, primary key(a)) engine=$engine partition by range (ascii(a)) subpartition by key (a) subpartitions 4 ( partition pa16 values less than (16), @@ -66,6 +71,7 @@ select count(*) from t3; select hex(a) from t3; drop table t3; + eval create table t4 (a binary(255) not null, primary key(a)) engine=$engine partition by list (ascii(a)) subpartition by key (a) subpartitions 4 ( partition pa16 values in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), @@ -86,6 +92,9 @@ eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54)); dec $count; inc $letter; } + select count(*) from t4; select hex(a) from t4; drop table t4; +} +# End of tests with disallowed partitioning functions. diff --git a/mysql-test/suite/parts/inc/partition_bit.inc b/mysql-test/suite/parts/inc/partition_bit.inc index 3dd880595a3..6fcf3b208bb 100644 --- a/mysql-test/suite/parts/inc/partition_bit.inc +++ b/mysql-test/suite/parts/inc/partition_bit.inc @@ -14,7 +14,7 @@ let $index_directory = `select @indx_dir`; drop table if exists t1; --enable_warnings ---error 1439 +--error ER_TOO_BIG_DISPLAYWIDTH eval create table t1 (a bit(65), primary key (a)) engine=$engine partition by key (a); eval create table t1 (a bit(0), primary key (a)) engine=$engine partition by key (a); diff --git a/mysql-test/suite/parts/inc/partition_blob.inc b/mysql-test/suite/parts/inc/partition_blob.inc index ccff06ba633..b22693c9f3d 100644 --- a/mysql-test/suite/parts/inc/partition_blob.inc +++ b/mysql-test/suite/parts/inc/partition_blob.inc @@ -1,3 +1,5 @@ +--echo ---- Partitioning and blob data type + --disable_query_log # DATA DIRECTORY eval SET @data_dir = 'DATA DIRECTORY = diff --git a/mysql-test/suite/parts/inc/partition_char.inc b/mysql-test/suite/parts/inc/partition_char.inc index 4e330b122e3..b3d7ae3c2a1 100644 --- a/mysql-test/suite/parts/inc/partition_char.inc +++ b/mysql-test/suite/parts/inc/partition_char.inc @@ -1,3 +1,5 @@ +--echo ---- Partitioning and char data type + --disable_query_log # DATA DIRECTORY eval SET @data_dir = 'DATA DIRECTORY = @@ -42,6 +44,7 @@ select count(*) from t2; select * from t2; drop table t2; +# mleich: Several partitioning functions are no more allowed. if (0) { eval create table t3 (a char(255) not null, primary key(a)) engine=$engine @@ -91,5 +94,4 @@ select count(*) from t4; select a from t4; drop table t4; } -#if (0) - +# End of tests with disallowed partitioning functions. diff --git a/mysql-test/suite/parts/inc/partition_check.inc b/mysql-test/suite/parts/inc/partition_check.inc index 87d8c5a3c5a..19d548cc8ef 100644 --- a/mysql-test/suite/parts/inc/partition_check.inc +++ b/mysql-test/suite/parts/inc/partition_check.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_check.inc # +# inc/partition_check.inc # # # # Purpose: # # Do some basic usability checks on table t1. # @@ -27,7 +27,7 @@ # Records can be deleted or inserted, but the content of the # # records after a test/testsequence should follow this scheme. # # # -# All checks of preceeding statements via Select are so written, # +# All checks of preceding statements via Select are so written, # # that they deliver a # # # check <n> success: 1 # # when everything is like expected. # @@ -47,10 +47,9 @@ ################################################################################ ---echo # Start usability test (include/partition_check.inc) +--echo # Start usability test (inc/partition_check.inc) # Print the CREATE TABLE STATEMENT and store the current layout of the table --source suite/parts/inc/partition_layout_check1.inc -# --source include/partition_layout_check1.inc #------------------------------------------------------------------------------- @@ -160,8 +159,7 @@ if ($run) # partitioning mechanism. # Sideeffect: Attempt to INSERT one record # DUPLICATE KEY will appear if we have UNIQUE columns -# 1022: ER_DUP_KEY -# 1062: ER_DUP_ENTRY +# ER_DUP_KEY, ER_DUP_ENTRY --disable_abort_on_error INSERT INTO t1 (f_int1, f_int2, f_char1, f_char2, f_charbig) SELECT f_int1, f_int1, CAST(f_int1 AS CHAR), @@ -174,14 +172,13 @@ if ($no_debug) } eval SET @my_errno = $mysql_errno; let $run_delete= `SELECT @my_errno = 0`; -let $any_unique= `SELECT @my_errno IN (1022,1062)`; -let $unexpected_error= `SELECT @my_errno NOT IN (0,1022,1062)`; +let $any_unique= `SELECT @my_errno IN ($ER_DUP_KEY,$ER_DUP_ENTRY)`; # DEBUG eval SELECT $run_delete AS run_delete, $any_unique AS any_unique, -# $unexpected_error AS unexpected_error; -if ($unexpected_error) +# @my_errno AS sql_errno; +if (`SELECT @my_errno NOT IN (0,$ER_DUP_KEY,$ER_DUP_ENTRY)`) { --echo # The last command got an unexepected error response. - --echo # Expected/handled SQL codes are 0,1022,1062 + --echo # Expected/handled SQL codes are 0,$ER_DUP_KEY,$ER_DUP_ENTRY SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; --echo # Sorry, have to abort. exit; @@ -204,8 +201,7 @@ if ($any_unique) ## 1.3.1 Check, if f_int1 is UNIQUE # Sideeffect: Attempt to INSERT one record # DUPLICATE KEY will appear if we have UNIQUE columns - # 1022: ER_DUP_KEY - # 1062: ER_DUP_ENTRY + # ER_DUP_KEY, ER_DUP_ENTRY --disable_abort_on_error 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), @@ -218,14 +214,13 @@ if ($any_unique) } eval SET @my_errno = $mysql_errno; let $run_delete= `SELECT @my_errno = 0`; - let $f_int1_is_unique= `SELECT @my_errno IN (1022,1062)`; - let $unexpected_error= `SELECT @my_errno NOT IN (0,1022,1062)`; + let $f_int1_is_unique= `SELECT @my_errno IN ($ER_DUP_KEY,$ER_DUP_ENTRY)`; # DEBUG eval SELECT $run_delete AS run_delete, $f_int1_is_unique AS any_unique, - # $unexpected_error AS unexpected_error; - if ($unexpected_error) + # @my_errno AS sql_errno; + if (`SELECT @my_errno NOT IN (0,$ER_DUP_KEY,$ER_DUP_ENTRY)`) { --echo # The last command got an unexepected error response. - --echo # Expected/handled SQL codes are 0,1022,1062 + --echo # Expected/handled SQL codes are 0,$ER_DUP_KEY,$ER_DUP_ENTRY SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; --echo # Sorry, have to abort. exit; @@ -242,7 +237,7 @@ if ($any_unique) DELETE FROM t1 WHERE f_charbig = 'delete me'; } - ## 1.3.2 Check, if f_int2 is UNIQUE + ## 1.3.2 Check, if f_int2 is UNIQUE (get ER_DUP_KEY or ER_DUP_ENTRY --disable_abort_on_error 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), @@ -255,14 +250,13 @@ if ($any_unique) } eval SET @my_errno = $mysql_errno; let $run_delete= `SELECT @my_errno = 0`; - let $f_int1_is_unique= `SELECT @my_errno IN (1022,1062)`; - let $unexpected_error= `SELECT @my_errno NOT IN (0,1022,1062)`; + let $f_int1_is_unique= `SELECT @my_errno IN ($ER_DUP_KEY,$ER_DUP_ENTRY)`; # DEBUG eval SELECT $run_delete AS run_delete, $f_int1_is_unique AS any_unique, - # $unexpected_error AS unexpected_error; - if ($unexpected_error) + # @my_errno AS sql_errno; + if (`SELECT @my_errno NOT IN (0,$ER_DUP_KEY,$ER_DUP_ENTRY)`) { --echo # The last command got an unexepected error response. - --echo # Expected/handled SQL codes are 0,1022,1062 + --echo # Expected/handled SQL codes are 0,$ER_DUP_KEY,$ER_DUP_ENTRY SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; --echo # Sorry, have to abort. exit; @@ -289,14 +283,11 @@ if ($any_unique) # per f_int1 used in partitioning function let $col_to_check= f_int1; --source suite/parts/inc/partition_check_read.inc -# --source include/partition_check_read.inc ## 2.2 Read all existing and some not existing records of table # per f_int2 used in partitioning function let $col_to_check= f_int2; --source suite/parts/inc/partition_check_read.inc -if ($fixed_bug18735) -{ #------------------------------------------------------------------------------- # 3 Some operations with multiple records @@ -321,7 +312,7 @@ SELECT '# check multiple-2 success: ' AS "",COUNT(*) = @max_row - @max_row_div3 # (Insert the records deleted in 3.2) INSERT INTO t1 SELECT * FROM t0_template WHERE MOD(f_int1,3) = 0; -# Check of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -337,7 +328,7 @@ FROM t1; 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 of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -352,7 +343,7 @@ SELECT '# check multiple-4 success: ' AS "",(COUNT(*) = @max_row) AND (MIN(f_int 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 of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -405,7 +396,7 @@ 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 of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -423,7 +414,7 @@ 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 of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -443,7 +434,7 @@ SELECT MAX(f_int1) + 1 INTO @cur_value2 FROM t1; # Bug#18735: Partitions: NDB, UNIQUE INDEX, UPDATE, strange server response UPDATE t1 SET f_int1 = @cur_value2 WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#'; -# Check of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -464,7 +455,7 @@ SELECT MAX(f_int1) INTO @cur_value2 FROM t1; # Bug#18735: Partitions: NDB, UNIQUE INDEX, UPDATE, strange server response UPDATE t1 SET f_int1 = @cur_value1 WHERE f_int1 = @cur_value2 AND f_charbig = '#SINGLE#'; -# Check of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -476,7 +467,7 @@ WHERE f_int1 = @cur_value1 AND f_charbig = '#SINGLE#'; # 4.5 Delete the record with the highest value of f_int1. SELECT MAX(f_int1) INTO @cur_value FROM t1; DELETE FROM t1 WHERE f_int1 = @cur_value AND f_charbig = '#SINGLE#'; -# Check of preceeding statements via Select +# Check of preceding statements via Select if ($no_debug) { --disable_query_log @@ -487,7 +478,7 @@ WHERE f_charbig = '#SINGLE#' AND f_int1 = f_int1 = @cur_value; # # 4.6 Delete the record with f_int1 = -1 DELETE FROM t1 WHERE f_int1 = -1 AND f_charbig = '#SINGLE#'; -# Check of preceeding statements via Select +# Check of preceding statements via Select if ($no_debug) { --disable_query_log @@ -499,9 +490,9 @@ WHERE f_charbig = '#SINGLE#' AND f_int1 IN (-1,@cur_value); # 4.7 Insert one record with such a big value for f_int1, so that in case # - f_int1 is used within the partitioning algorithm # - we use range partitioning -# we get error ER_NO_PARTITION_FOR_GIVEN_VALUE (1525) +# we get error ER_NO_PARTITION_FOR_GIVEN_VALUE # "Table has no partition for value ...." -# or ER_SAME_NAME_PARTITION (1514) +# or ER_SAME_NAME_PARTITION --disable_abort_on_error eval INSERT INTO t1 SET f_int1 = @max_int_4 , f_int2 = @max_int_4, f_charbig = '#$max_int_4##'; --enable_abort_on_error @@ -510,17 +501,16 @@ if ($no_debug) --disable_query_log } eval SET @my_errno = $mysql_errno; -let $unexpected_error= `SELECT @my_errno NOT IN (0,1514,1525)`; -if ($unexpected_error) +if (`SELECT @my_errno NOT IN (0,$ER_SAME_NAME_PARTITION,$ER_NO_PARTITION_FOR_GIVEN_VALUE)`) { --echo # The last command got an unexepected error response. - --echo # Expected/handled SQL codes are 0,1514,1525 + --echo # Expected/handled SQL codes are 0,$ER_SAME_NAME_PARTITION,$ER_NO_PARTITION_FOR_GIVEN_VALUE SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; --echo # Sorry, have to abort. exit; --echo } -# Check of preceeding statement via Select, if the INSERT was successful +# Check of preceding statement via Select, if the INSERT was successful let $run= `SELECT @my_errno = 0`; if ($run) { @@ -538,8 +528,6 @@ eval DELETE FROM t1 WHERE f_charbig = '#$max_int_4##'; } --enable_query_log -} -# End workaround for Bug#18735 #------------------------------------------------------------------------------- # 5 Experiments with NULL @@ -562,14 +550,13 @@ INSERT t1 SET f_int1 = 0 , f_int2 = 0, # mechanism if the result of the expression in the partitioning algorithm # becomes NULL. # This INSERT will fail, if f_int1 is PRIMARY KEY or UNIQUE INDEX -# 1048: ER_BAD_NULL_ERROR +# with ER_BAD_NULL_ERROR. --disable_abort_on_error - 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#'; -# Some other NULL experiments if preceeding INSERT was successfull +# Some other NULL experiments if preceding INSERT was successfull --enable_abort_on_error if ($no_debug) { @@ -577,13 +564,13 @@ if ($no_debug) } eval SET @my_errno = $mysql_errno; let $run= `SELECT @my_errno = 0`; -let $unexpected_error= `SELECT @my_errno NOT IN (0,1048)`; -if ($unexpected_error) +if (`SELECT @my_errno NOT IN (0,$ER_BAD_NULL_ERROR)`) { --echo # The last command got an unexepected error response. - --echo # Expected/handled SQL codes are 0,1048 + --echo # Expected/handled SQL codes are 0,$ER_BAD_NULL_ERROR SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; --echo # Sorry, have to abort. + --echo # Please check the error name to number mapping in inc/partition.pre. exit; --echo } @@ -593,7 +580,7 @@ if ($unexpected_error) # The following checks do not make sense if f_int1 cannot be NULL if ($run) { -# Check of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -612,7 +599,7 @@ if ($no_debug) { --disable_query_log } -# Check of preceeding statement via Select +# Check of preceding statement via Select SELECT '# check null-2 success: ' AS "",COUNT(*) = 1 AS "" FROM t1 WHERE f_int1 = -@max_row AND f_charbig = '#NULL#'; --enable_query_log @@ -624,7 +611,7 @@ if ($no_debug) { --disable_query_log } -# Check of preceeding statement via Select +# Check of preceding statement via Select SELECT '# check null-3 success: ' AS "",COUNT(*) = 1 AS "" FROM t1 WHERE f_int1 IS NULL AND f_charbig = '#NULL#'; --enable_query_log @@ -632,7 +619,7 @@ WHERE f_int1 IS NULL AND f_charbig = '#NULL#'; 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 of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -697,7 +684,6 @@ if ($any_unique) UPDATE f_int1 = 2 * @max_row + source_tab.f_int1, f_charbig = 'was updated'; --source suite/parts/inc/partition_20.inc - # --source include/partition_20.inc } if ($f_int2_is_unique) @@ -713,7 +699,6 @@ if ($any_unique) UPDATE f_int2 = 2 * @max_row + source_tab.f_int1, f_charbig = 'was updated'; --source suite/parts/inc/partition_20.inc - # --source include/partition_20.inc } ## 6.3 f_int1, f_int2 is UNIQUE, UPDATE f_int1, f_int2 when DUPLICATE KEY @@ -727,7 +712,6 @@ if ($any_unique) f_int2 = 2 * @max_row + source_tab.f_int1, f_charbig = 'was updated'; --source suite/parts/inc/partition_20.inc - # --source include/partition_20.inc ## 6.4 REPLACE # Bug#16782: Partitions: crash, REPLACE .. on table with PK, DUPLICATE KEY @@ -736,7 +720,7 @@ if ($any_unique) FROM t0_template source_tab WHERE MOD(f_int1,3) = 0 AND f_int1 BETWEEN @max_row_div2 AND @max_row; # DEBUG SELECT * FROM t1 ORDER BY f_int1, f_int2; - # Check of preceeding statement via Select + # Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -763,10 +747,6 @@ if ($any_unique) # DEBUG SELECT * FROM t1 ORDER BY f_int1, f_int2; } -if ($fixed_bug18735) -{ - # The following tests work cannot like intended, if we had to omit - # tests because of Bug#18735 #------------------------------------------------------------------------------- # 7 Transactions @@ -943,14 +923,12 @@ if ($debug) SELECT * FROM t1 ORDER BY f_int1; } -} -# End workaround for Bug#18735 #------------------------------------------------------------------------------- # 8 Some special cases # 8.1 Dramatic increase of the record/partition/subpartition/table sizes UPDATE t1 SET f_charbig = REPEAT('b', 1000); -# partial check of preceeding statement via Select +# partial check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -961,7 +939,7 @@ WHERE f_int1 = 1 AND f_charbig = REPEAT('b', 1000); # # 8.2 Dramatic decrease of the record/partition/subpartition/table sizes UPDATE t1 SET f_charbig = ''; -# partial check of preceeding statement via Select +# partial check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -977,8 +955,7 @@ if ($debug) SELECT * FROM t1 ORDER BY f_int1; } -if ($fixed_bug18735) -{ + #------------------------------------------------------------------------------- # 9 TRIGGERs let $num= 1; @@ -998,28 +975,22 @@ 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; let $event= BEFORE INSERT; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $event= AFTER INSERT; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $statement= UPDATE t0_aux SET f_int1 = - f_int1, f_int2 = - f_int2 WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1)); let $event= BEFORE UPDATE; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $event= AFTER UPDATE; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $statement= DELETE FROM t0_aux WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1)); let $event= BEFORE DELETE; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $event= AFTER DELETE; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc # Cleanup eval DELETE FROM $tab_in_trigg @@ -1052,28 +1023,22 @@ 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; let $event= BEFORE INSERT; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $event= AFTER INSERT; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $statement= UPDATE t1 SET f_int1 = - f_int1, f_int2 = - f_int2 WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1)); let $event= BEFORE UPDATE; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $event= AFTER UPDATE; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $statement= DELETE FROM t1 WHERE f_int1 IN (- (@max_row_div2 - 1),- @max_row_div2,- (@max_row_div2 + 1)); let $event= BEFORE DELETE; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc let $event= AFTER DELETE; --source suite/parts/inc/partition_trigg1.inc -# --source include/partition_trigg1.inc eval DELETE FROM $tab_in_trigg WHERE f_int1 BETWEEN @max_row_div2 - 1 AND @max_row_div2 + 1; } @@ -1095,7 +1060,6 @@ SET f_charbig = '####updated per update statement itself####'; let $source= old; let $event= BEFORE UPDATE; --source suite/parts/inc/partition_trigg2.inc -# --source include/partition_trigg2.inc # FIXME when AFTER TRIGGER can be used # Currently (2006-02-23) a AFTER TRIGGER is not allowed to modify a row, which # was just modified: 1362: Updating of NEW row is not allowed in after trigger @@ -1111,7 +1075,6 @@ f_charbig = '####updated per update statement itself####'; let $source= old; let $event= BEFORE UPDATE; --source suite/parts/inc/partition_trigg2.inc -# --source include/partition_trigg2.inc # FIXME when AFTER TRIGGER can be used # Currently (2006-02-23) a AFTER TRIGGER is not allowed to modify a row, which # was just modified: 1362: Updating of NEW row is not allowed in after trigger @@ -1119,7 +1082,6 @@ let $event= BEFORE UPDATE; let $source= new; let $event= BEFORE UPDATE; --source suite/parts/inc/partition_trigg2.inc -# --source include/partition_trigg2.inc # FIXME when AFTER TRIGGER can be used if ($debug) @@ -1138,7 +1100,6 @@ ORDER BY f_int1; let $event= BEFORE INSERT; let $source= new; --source suite/parts/inc/partition_trigg3.inc -# --source include/partition_trigg3.inc # FIXME when AFTER TRIGGER can be used # 9.4.2 INSERT assigns no values to the recalculate columns @@ -1150,7 +1111,6 @@ ORDER BY f_int1; let $event= BEFORE INSERT; let $source= new; --source suite/parts/inc/partition_trigg3.inc -# --source include/partition_trigg3.inc # FIXME when AFTER TRIGGER can be used if ($debug) @@ -1158,8 +1118,6 @@ if ($debug) SELECT * FROM t1 ORDER BY f_int1; } -} -# End workaround for Bug#18735 #------------------------------------------------------------------------------- # 10 ANALYZE/CHECK/CHECKSUM @@ -1181,17 +1139,15 @@ CHECKSUM TABLE t1 EXTENDED; # FIXME What will happen with NDB ? OPTIMIZE TABLE t1; --source suite/parts/inc/partition_layout_check2.inc -# --source include/partition_layout_check2.inc # 10.2 REPAIR TABLE REPAIR TABLE t1 EXTENDED; --source suite/parts/inc/partition_layout_check2.inc -# --source include/partition_layout_check2.inc # # 11.3 Truncate # Manual about TRUNCATE on tables ( != InnoDB table with FOREIGN KEY ): # Truncate operations drop and re-create the table .... TRUNCATE t1; -# Check of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -1199,6 +1155,5 @@ if ($no_debug) SELECT '# check TRUNCATE success: ' AS "",COUNT(*) = 0 AS "" FROM t1; --enable_query_log --source suite/parts/inc/partition_layout_check2.inc -# --source include/partition_layout_check2.inc ---echo # End usability test (include/partition_check.inc) +--echo # End usability test (inc/partition_check.inc) diff --git a/mysql-test/suite/parts/inc/partition_check_drop.inc b/mysql-test/suite/parts/inc/partition_check_drop.inc index 825ebecba24..88ebdb7ad48 100644 --- a/mysql-test/suite/parts/inc/partition_check_drop.inc +++ b/mysql-test/suite/parts/inc/partition_check_drop.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_check_drop.inc # +# inc/partition_check_drop.inc # # # # Purpose: # # Check that a drop table removes all files belonging to this table. # @@ -9,7 +9,7 @@ # This routine is only useful for the partition_<feature>_<engine> tests. # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-05-12 # # Change Author: # # Change Date: # @@ -52,7 +52,7 @@ if ($found_garbage) if ($ls) { --echo # Attention: There are unused files. - --echo # Either the DROP TABLE or a preceeding ALTER TABLE + --echo # Either the DROP TABLE or a preceding ALTER TABLE --echo # <alter partitioning> worked incomplete. --echo # We found: # Print the list of files into the protocol diff --git a/mysql-test/suite/parts/inc/partition_check_read.inc b/mysql-test/suite/parts/inc/partition_check_read.inc index 14bbd46ac7f..e42bb9c90ab 100644 --- a/mysql-test/suite/parts/inc/partition_check_read.inc +++ b/mysql-test/suite/parts/inc/partition_check_read.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_check_read.inc # +# inc/partition_check_read.inc # # # # Purpose: # # Read table t1 row by row # @@ -10,7 +10,7 @@ # - the table contains all expected rows # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -80,7 +80,7 @@ if ($no_debug) --disable_query_log } --echo # check read via $col_to_check success: $success -# ML: The following is omitted because of not reported mysqltest bug +# mleich: The following is omitted because of not reported mysqltest bug # (@max_row time the success message) if (0) { diff --git a/mysql-test/suite/parts/inc/partition_check_read1.inc b/mysql-test/suite/parts/inc/partition_check_read1.inc index dad5c347052..0b8b800a371 100644 --- a/mysql-test/suite/parts/inc/partition_check_read1.inc +++ b/mysql-test/suite/parts/inc/partition_check_read1.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_check_read1.inc # +# inc/partition_check_read1.inc # # # # Purpose: # # Read rows from table t1 in different ways # @@ -10,7 +10,7 @@ # must be set before sourcing this routine. # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-04-11 # # Change Author: # # Change Date: # diff --git a/mysql-test/suite/parts/inc/partition_check_read2.inc b/mysql-test/suite/parts/inc/partition_check_read2.inc index 4c32456a31e..60964355d14 100644 --- a/mysql-test/suite/parts/inc/partition_check_read2.inc +++ b/mysql-test/suite/parts/inc/partition_check_read2.inc @@ -1,12 +1,12 @@ ################################################################################ -# include/partition_check_read2.inc # +# inc/partition_check_read2.inc # # # # Purpose: # # Read rows from table t1 in different ways # # This routine is only useful for the partition_<feature>_<engine> tests. # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-04-11 # # Change Author: # # Change Date: # diff --git a/mysql-test/suite/parts/inc/partition_cleanup.inc b/mysql-test/suite/parts/inc/partition_cleanup.inc index dcd6005287e..34d3e435509 100644 --- a/mysql-test/suite/parts/inc/partition_cleanup.inc +++ b/mysql-test/suite/parts/inc/partition_cleanup.inc @@ -1,12 +1,12 @@ ################################################################################ -# include/partition_cleanup.inc # +# inc/partition_cleanup.inc # # # # Purpose: # # Removal of the objects created by the t/partition_<feature>_<engine>.test # # scripts. # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # diff --git a/mysql-test/suite/parts/inc/partition_directory.inc b/mysql-test/suite/parts/inc/partition_directory.inc index 17748df4f4d..5acdf13a8f9 100644 --- a/mysql-test/suite/parts/inc/partition_directory.inc +++ b/mysql-test/suite/parts/inc/partition_directory.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_rectory.inc # +# inc/partition_directory.inc # # # # Purpose: # # Create and check partitioned tables # @@ -9,7 +9,7 @@ # do # # 1. Create the partitioned table # # 2 Insert the content of the table t0_template into t1 # -# 3. Execute include/partition_check.inc # +# 3. Execute inc/partition_check.inc # # 4. Drop the table t1 # # done # #------------------------------------------------------------------------------# @@ -49,7 +49,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -86,7 +85,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -122,7 +120,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -153,7 +150,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -181,7 +177,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -212,7 +207,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -256,7 +250,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc diff --git a/mysql-test/suite/parts/inc/partition_engine.inc b/mysql-test/suite/parts/inc/partition_engine.inc index 2beb08e7626..769e3d71530 100644 --- a/mysql-test/suite/parts/inc/partition_engine.inc +++ b/mysql-test/suite/parts/inc/partition_engine.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_engine.inc # +# inc/partition_engine.inc # # # # Purpose: # # Tests around Create/Alter partitioned tables and storage engine settings # @@ -17,7 +17,7 @@ # storage engine to use. # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -45,7 +45,6 @@ $column_list 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 -# --source include/partition_check.inc DROP TABLE t1; # --echo #------------------------------------------------------------------------ @@ -62,7 +61,6 @@ PARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list @@ -79,7 +77,6 @@ SUBPARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; # --echo #------------------------------------------------------------------------ @@ -96,7 +93,6 @@ PARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list @@ -108,7 +104,6 @@ PARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list @@ -125,7 +120,6 @@ SUBPARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list @@ -142,7 +136,6 @@ SUBPARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; # --echo #------------------------------------------------------------------------ @@ -164,7 +157,6 @@ SUBPARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list @@ -181,7 +173,6 @@ SUBPARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; # --echo #------------------------------------------------------------------------ @@ -199,7 +190,6 @@ PARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list @@ -216,7 +206,6 @@ SUBPARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; --echo # 6.2 Storage engine assignment after partition name + after --echo # subpartition name @@ -236,7 +225,6 @@ SUBPARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; --echo #------------------------------------------------------------------------ @@ -252,7 +240,6 @@ PARTITION BY HASH(f_int1) ( PARTITION part1 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 -# --source include/partition_check.inc DROP TABLE t1; # Bug#15966 Partitions: crash if session default engine <> engine used in create table eval CREATE TABLE t1 ( @@ -266,6 +253,5 @@ SUBPARTITION BY HASH(f_int1) 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 -# --source include/partition_check.inc DROP TABLE t1; eval SET SESSION storage_engine=$engine; diff --git a/mysql-test/suite/parts/inc/partition_enum.inc b/mysql-test/suite/parts/inc/partition_enum.inc index 67e790743f0..886ab6a5f97 100644 --- a/mysql-test/suite/parts/inc/partition_enum.inc +++ b/mysql-test/suite/parts/inc/partition_enum.inc @@ -1,3 +1,5 @@ +--echo ---- Partitioning and enum data type + --disable_query_log # DATA DIRECTORY eval SET @data_dir = 'DATA DIRECTORY = @@ -47,6 +49,9 @@ select count(*) from t2; select * from t2; drop table t2; +# mleich: Several partitioning functions are no more allowed. +if (0) +{ eval create table t3 (a enum ( '1','2','3','4','5','6','7','8','9','0', 'A','B','C','D','E','F','G','H','I','J','K','L', @@ -71,4 +76,5 @@ dec $letter; select count(*) from t3; select * from t3; drop table t3; - +} +# End of tests with disallowed partitioning functions. diff --git a/mysql-test/include/partition_layout.inc b/mysql-test/suite/parts/inc/partition_layout.inc index e8d2b0f9123..c4181ef1cfd 100644 --- a/mysql-test/include/partition_layout.inc +++ b/mysql-test/suite/parts/inc/partition_layout.inc @@ -1,4 +1,4 @@ -# include/partition_layout.inc +# inc/partition_layout.inc # # Print partitioning related informations about the table t1 # diff --git a/mysql-test/suite/parts/inc/partition_layout_check1.inc b/mysql-test/suite/parts/inc/partition_layout_check1.inc index d3441b3d886..9989f4ed9e3 100644 --- a/mysql-test/suite/parts/inc/partition_layout_check1.inc +++ b/mysql-test/suite/parts/inc/partition_layout_check1.inc @@ -1,17 +1,17 @@ ################################################################################ -# include/partition_layout_check1.inc # +# inc/partition_layout_check1.inc # # # # Purpose: # # Store the SHOW CREATE TABLE output and the list of files belonging to # # this table + print this into the protocol # # This script is only usefule when sourced within the partitioning tests. # # # -# Attention: The routine include/partition_layout_check2.inc is very similar # +# Attention: The routine inc/partition_layout_check2.inc is very similar # # to this one. So if something has to be changed here it # # might be necessary to do it also there # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # diff --git a/mysql-test/suite/parts/inc/partition_layout_check2.inc b/mysql-test/suite/parts/inc/partition_layout_check2.inc index 8a45613559d..05c44a73a7f 100644 --- a/mysql-test/suite/parts/inc/partition_layout_check2.inc +++ b/mysql-test/suite/parts/inc/partition_layout_check2.inc @@ -1,18 +1,18 @@ ################################################################################ -# include/partition_layout_check2.inc # +# inc/partition_layout_check2.inc # # # # Purpose: # # Store the SHOW CREATE TABLE output and the list of files belonging to # # this table + Check if the layout of the table was not modified # -# since the call of include/partition_layout_check1.inc # +# since the call of inc/partition_layout_check1.inc # # This script is only usefule when sourced within the partitioning tests. # # # -# Attention: The routine include/partition_layout_check1.inc is very similar # +# Attention: The routine inc/partition_layout_check1.inc is very similar # # to this one. So if something has to be changed here it # # might be necessary to do it also there # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # diff --git a/mysql-test/suite/parts/inc/partition_methods1.inc b/mysql-test/suite/parts/inc/partition_methods1.inc index 6e49c51cc3d..1edcdcb3743 100644 --- a/mysql-test/suite/parts/inc/partition_methods1.inc +++ b/mysql-test/suite/parts/inc/partition_methods1.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_methods1.inc # +# inc/partition_methods1.inc # # # # Purpose: # # Create and check partitioned tables # @@ -11,7 +11,7 @@ # do # # 1. Create the partitioned table # # 2 Insert the content of the table t0_template into t1 # -# 3. Execute include/partition_check.inc # +# 3. Execute inc/partition_check.inc # # 4. Drop the table t1 # # done # # # @@ -21,14 +21,14 @@ # has to be set before sourcing this routine. # # Example: # # let $unique= , UNIQUE INDEX uidx1 (f_int1); # -# include/partition_method1s.inc # +# inc/partition_method1s.inc # # # -# Attention: The routine include/partition_methods2.inc is very similar # +# Attention: The routine inc/partition_methods2.inc is very similar # # to this one. So if something has to be changed here it # # might be necessary to do it also there # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: HH # # Change Date: 2006-05-12 # @@ -66,7 +66,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -107,7 +106,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -143,7 +141,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -180,7 +177,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -212,7 +208,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -247,7 +242,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -299,7 +293,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; --source suite/parts/inc/partition_check_drop.inc @@ -329,7 +322,6 @@ $partitioning; --enable_query_log eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/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 31b083bfa7a..91821d620b6 100644 --- a/mysql-test/suite/parts/inc/partition_methods2.inc +++ b/mysql-test/suite/parts/inc/partition_methods2.inc @@ -1,5 +1,5 @@ ################################################################################ -# include/partition_methods2.inc # +# inc/partition_methods2.inc # # # # Purpose: # # Create and check partitioned tables # @@ -10,7 +10,7 @@ # do # # 1. Create the partitioned table # # 2 Insert the content of the table t0_template into t1 # -# 3. Execute include/partition_check.inc # +# 3. Execute inc/partition_check.inc # # 4. Drop the table t1 # # done # # # @@ -20,14 +20,14 @@ # has to be set before sourcing this routine. # # Example: # # let $unique= , UNIQUE INDEX uidx1 (f_int1); # -# include/partition_methods2.inc # +# inc/partition_methods2.inc # # # -# Attention: The routine include/partition_methods1.inc is very similar # +# Attention: The routine inc/partition_methods1.inc is very similar # # to this one. So if something has to be changed here it # # might be necessary to do it also there # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -51,7 +51,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY KEY @@ -66,7 +65,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY LIST @@ -89,7 +87,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY RANGE @@ -113,7 +110,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY RANGE -- SUBPARTITION BY HASH @@ -136,7 +132,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY @@ -162,7 +157,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY LIST -- SUBPARTITION BY HASH @@ -185,7 +179,6 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; #----------- PARTITION BY LIST -- SUBPARTITION BY KEY @@ -208,5 +201,4 @@ $unique $partitioning; eval $insert_all; --source suite/parts/inc/partition_check.inc -# --source include/partition_check.inc DROP TABLE t1; diff --git a/mysql-test/suite/parts/inc/partition_set.inc b/mysql-test/suite/parts/inc/partition_set.inc index 292a28e7e1a..b9501ad04b6 100644 --- a/mysql-test/suite/parts/inc/partition_set.inc +++ b/mysql-test/suite/parts/inc/partition_set.inc @@ -1,3 +1,5 @@ +--echo ---- Partitioning and set data type + --disable_query_log # DATA DIRECTORY eval SET @data_dir = 'DATA DIRECTORY = diff --git a/mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc b/mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc index 0f30fd199f8..d9c1f5836f0 100644 --- a/mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc +++ b/mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc @@ -234,7 +234,6 @@ subpartition by hash($sqlfunc) subpartitions 5 let $t5=t5; let $t6=t6; --source suite/parts/inc/part_supported_sql_funcs_delete.inc - # --source include/part_supported_sql_funcs_delete.inc let $t1=t11; let $t2=t22; @@ -243,7 +242,6 @@ subpartition by hash($sqlfunc) subpartitions 5 let $t5=t55; let $t6=t66; --source suite/parts/inc/part_supported_sql_funcs_delete.inc - # --source include/part_supported_sql_funcs_delete.inc --echo ------------------------- --echo ---- some alter table end --echo ------------------------- diff --git a/mysql-test/suite/parts/inc/partition_syntax.inc b/mysql-test/suite/parts/inc/partition_syntax.inc index 26bf57f3ef2..e72aad80f0a 100644 --- a/mysql-test/suite/parts/inc/partition_syntax.inc +++ b/mysql-test/suite/parts/inc/partition_syntax.inc @@ -1,11 +1,11 @@ ################################################################################ -# include/partition_syntax.inc # +# inc/partition_syntax.inc # # # # Purpose: # # Tests around Create partitioned tables syntax # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -107,17 +107,13 @@ let $unique_index= UNIQUE INDEX (f_int2); #----------- PARTITION BY HASH let $partition_scheme= PARTITION BY HASH(f_int1) PARTITIONS 2; --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc let $partition_scheme= PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2; --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc #----------- PARTITION BY KEY let $partition_scheme= PARTITION BY KEY(f_int1) PARTITIONS 2; --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc let $partition_scheme= PARTITION BY KEY(f_int1,f_int2) PARTITIONS 2; --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc #----------- PARTITION BY LIST let $partition_scheme= PARTITION BY LIST(MOD(f_int1,3)) (PARTITION partN VALUES IN (NULL), @@ -125,25 +121,21 @@ let $partition_scheme= PARTITION BY LIST(MOD(f_int1,3)) PARTITION part1 VALUES IN (1), PARTITION part2 VALUES IN (2)); --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc let $partition_scheme= PARTITION BY LIST(MOD(f_int1 + f_int2,3)) (PARTITION partN VALUES IN (NULL), PARTITION part0 VALUES IN (0), PARTITION part1 VALUES IN (1), PARTITION part2 VALUES IN (2)); --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc #----------- PARTITION BY RANGE let $partition_scheme= PARTITION BY RANGE(f_int1) (PARTITION part1 VALUES LESS THAN (1), PARTITION part2 VALUES LESS THAN (2147483646)); --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc let $partition_scheme= PARTITION BY RANGE(f_int1 + f_int2) (PARTITION part1 VALUES LESS THAN (1), PARTITION part2 VALUES LESS THAN (2147483646)); --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc # --echo #------------------------------------------------------------------------ @@ -200,14 +192,12 @@ SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES LESS THAN (1), PARTITION part2 VALUES LESS THAN (2147483646)); --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc #----------- PARTITION BY RANGE -- SUBPARTITION BY KEY let $partition_scheme= PARTITION BY RANGE(f_int2) SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3 (PARTITION part1 VALUES LESS THAN (1), PARTITION part2 VALUES LESS THAN (2147483646)); --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc #----------- PARTITION BY LIST -- SUBPARTITION BY HASH let $partition_scheme= PARTITION BY LIST(MOD(f_int2,3)) SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2 @@ -216,7 +206,6 @@ SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2 PARTITION part1 VALUES IN (1), PARTITION part2 VALUES IN (2)); --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc #----------- PARTITION BY LIST -- SUBPARTITION BY KEY let $partition_scheme= PARTITION BY LIST(MOD(f_int2,3)) SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 2 @@ -225,7 +214,6 @@ SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 2 PARTITION part1 VALUES IN (1), PARTITION part2 VALUES IN (2)); --source suite/parts/inc/partition_syntax_2.inc -# --source include/partition_syntax_2.inc --echo --echo #======================================================================== @@ -359,7 +347,6 @@ PARTITION BY LIST(MOD(f_int1,2)) ( PARTITION part1 VALUES IN (NULL), PARTITION part3 VALUES IN (1)); --source suite/parts/inc/partition_layout_check1.inc -# --source include/partition_layout_check1.inc DROP TABLE t1; --echo # 3.5.3 Reveal that IN (...NULL) is not mapped to IN(0) # Bug#15447: Partitions: NULL is treated as zero @@ -372,7 +359,6 @@ PARTITION BY LIST(MOD(f_int1,2)) PARTITION part2 VALUES IN (0), PARTITION part3 VALUES IN (1)); --source suite/parts/inc/partition_layout_check1.inc -# --source include/partition_layout_check1.inc DROP TABLE t1; # FIXME Implement some non integer constant tests @@ -395,7 +381,6 @@ $column_list ) PARTITION BY HASH(f_int1); --source suite/parts/inc/partition_layout_check1.inc -# --source include/partition_layout_check1.inc DROP TABLE t1; --echo # 4.1.2 no partition number, named partitions eval CREATE TABLE t1 ( @@ -403,7 +388,6 @@ $column_list ) PARTITION BY HASH(f_int1) (PARTITION part1, PARTITION part2); --source suite/parts/inc/partition_layout_check1.inc -# --source include/partition_layout_check1.inc DROP TABLE t1; # Attention: Several combinations are impossible # If subpartitioning exists @@ -470,7 +454,6 @@ eval $part01 $column_list $part02 $part1_Y $part2_N $part3_Y ; eval $part01 $column_list $part02 $part1_Y $part2_Y $part3_N ; eval $part01 $column_list $part02 $part1_Y $part2_Y $part3_Y ; --source suite/parts/inc/partition_layout_check1.inc -# --source include/partition_layout_check1.inc DROP TABLE t1; --echo #------------------------------------------------------------------------ @@ -480,163 +463,119 @@ DROP TABLE t1; DROP TABLE IF EXISTS t1; --enable_warnings --echo # 4.2.1 partition/subpartition numbers INTEGER notation -# ML: "positive/negative" is my private judgement. It need no to correspond -# with the server response. +# mleich: "positive/negative" is my private judgement. It need not to +# correspond with the server response. # (positive) number = 2 let $part_number= 2; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (positive) special case number = 1 let $part_number= 1; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) 0 is non sense let $part_number= 0; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) -1 is non sense let $part_number= -1; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) 1000000 is too huge let $part_number= 1000000; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc --echo # 4.2.2 partition/subpartition numbers DECIMAL notation # (positive) number = 2.0 let $part_number= 2.0; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) -2.0 is non sense let $part_number= -2.0; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) case number = 0.0 is non sense let $part_number= 0.0; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc -if ($fixed_bug15890) -{ # Bug#15890 Partitions: Strange interpretation of partition number # (negative) number = 1.6 is non sense let $part_number= 1.6; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc -} # (negative) number is too huge let $part_number= 999999999999999999999999999999.999999999999999999999999999999; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) number is nearly zero let $part_number= 0.000000000000000000000000000001; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc --echo # 4.2.3 partition/subpartition numbers FLOAT notation ##### FLOAT notation # (positive) number = 2.0E+0 let $part_number= 2.0E+0; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc -if ($fixed_bug15890) -{ # Bug#15890 Partitions: Strange interpretation of partition number # (positive) number = 0.2E+1 let $part_number= 0.2E+1; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc -} # (negative) -2.0E+0 is non sense let $part_number= -2.0E+0; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc -if ($fixed_bug15890) -{ # Bug#15890 Partitions: Strange interpretation of partition number # (negative) 0.16E+1 is non sense let $part_number= 0.16E+1; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc -} # (negative) 0.0E+300 is zero let $part_number= 0.0E+300; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc -if ($fixed_bug15890) -{ # Bug#15890 Partitions: Strange interpretation of partition number # (negative) 1E+300 is too huge let $part_number= 1E+300; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) 1E-300 is nearly zero let $part_number= 1E-300; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc -} --echo # 4.2.4 partition/subpartition numbers STRING notation ##### STRING notation # (negative?) case number = '2' let $part_number= '2'; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative?) case number = '2.0' let $part_number= '2.0'; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative?) case number = '0.2E+1' let $part_number= '0.2E+1'; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) Strings starts with digit, but 'A' follows let $part_number= '2A'; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) Strings starts with 'A', but digit follows let $part_number= 'A2'; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) empty string let $part_number= ''; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) string without any digits let $part_number= 'GARBAGE'; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc --echo # 4.2.5 partition/subpartition numbers other notations # (negative) Strings starts with digit, but 'A' follows let $part_number= 2A; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) Strings starts with 'A', but digit follows let $part_number= A2; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) string without any digits let $part_number= GARBAGE; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative?) double quotes let $part_number= "2"; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) Strings starts with digit, but 'A' follows let $part_number= "2A"; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) Strings starts with 'A', but digit follows let $part_number= "A2"; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc # (negative) string without any digits let $part_number= "GARBAGE"; --source suite/parts/inc/partition_syntax_1.inc -# --source include/partition_syntax_1.inc --echo # 4.2.6 (negative) partition/subpartition numbers per @variables SET @aux = 5; @@ -665,7 +604,6 @@ $column_list ) PARTITION BY HASH(f_int1) PARTITIONS 2 ( PARTITION part1, PARTITION part2 ) ; --source suite/parts/inc/partition_layout_check1.inc -# --source include/partition_layout_check1.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list @@ -678,7 +616,6 @@ SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2 (SUBPARTITION subpart21, SUBPARTITION subpart22) ); --source suite/parts/inc/partition_layout_check1.inc -# --source include/partition_layout_check1.inc DROP TABLE t1; --echo # 4.3.2 (positive) number of partition/subpartition , --echo # 0 (= no) named partition/subpartition diff --git a/mysql-test/suite/parts/inc/partition_syntax_1.inc b/mysql-test/suite/parts/inc/partition_syntax_1.inc index 79fdcdf1b91..a7168b6af3b 100644 --- a/mysql-test/suite/parts/inc/partition_syntax_1.inc +++ b/mysql-test/suite/parts/inc/partition_syntax_1.inc @@ -1,8 +1,8 @@ ################################################################################ -# include/partition_syntax_1.inc # +# inc/partition_syntax_1.inc # # # # Purpose: # -# Auxiliary script, only useful when sourced by include/partition_syntax.inc # +# Auxiliary script, only useful when sourced by inc/partition_syntax.inc # # # # Try to create a table with number of partitions/subpartitions # # = $part_number. Print the layout of the table and drop it. # @@ -29,16 +29,13 @@ PARTITION BY HASH(f_int1) PARTITIONS $part_number; eval SET @my_errno= $mysql_errno ; let $run= `SELECT @my_errno = 0`; # Expected error codes are -# 0 -# 1064 ER_PARSE_ERROR -# Reason: assign -1 partitions -# 1498 ER_TOO_MANY_PARTITIONS_ERROR -# 1503 ER_NO_PARTS_ERROR -let $unexpected_error= `SELECT @my_errno NOT IN (0,1064,1498,1503)`; -if ($unexpected_error) +# 0, ER_PARSE_ERROR (Reason: assign -1 partitions), ER_TOO_MANY_PARTITIONS_ERROR +# and ER_NO_PARTS_ERROR +if (`SELECT @my_errno NOT IN (0,$ER_PARSE_ERROR,$ER_TOO_MANY_PARTITIONS_ERROR, + $ER_NO_PARTS_ERROR)`) { --echo # The last command got an unexepected error response. - --echo # Expected/handled SQL codes are 0,1064,1498,1503 + --echo # Expected/handled SQL codes are 0,$ER_PARSE_ERROR,$ER_TOO_MANY_PARTITIONS_ERROR,$ER_NO_PARTS_ERROR SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; --echo # Sorry, have to abort. exit; @@ -50,7 +47,6 @@ if ($unexpected_error) if ($run) { --source suite/parts/inc/partition_layout_check1.inc - # --source include/partition_layout_check1.inc eval DROP TABLE t1; } #### Try to create a table with the given subpartition number @@ -67,16 +63,13 @@ SUBPARTITIONS $part_number eval SET @my_errno= $mysql_errno ; let $run= `SELECT @my_errno = 0`; # Expected error codes are -# 0 -# 1064 ER_PARSE_ERROR -# Reason: assign -1 partitions -# 1498 ER_TOO_MANY_PARTITIONS_ERROR -# 1503 ER_NO_PARTS_ERROR -let $unexpected_error= `SELECT @my_errno NOT IN (0,1064,1498,1503)`; -if ($unexpected_error) +# 0, ER_PARSE_ERROR (Reason: assign -1 partitions), ER_TOO_MANY_PARTITIONS_ERROR +# and ER_NO_PARTS_ERROR +if (`SELECT @my_errno NOT IN (0,$ER_PARSE_ERROR,$ER_TOO_MANY_PARTITIONS_ERROR, + $ER_NO_PARTS_ERROR)`) { --echo # The last command got an unexepected error response. - --echo # Expected/handled SQL codes are 0,1064,1498,1503 + --echo # Expected/handled SQL codes are 0,$ER_PARSE_ERROR,$ER_TOO_MANY_PARTITIONS_ERROR,$ER_NO_PARTS_ERROR SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; --echo # Sorry, have to abort. exit; @@ -88,6 +81,5 @@ if ($unexpected_error) if ($run) { --source suite/parts/inc/partition_layout_check1.inc - # --source include/partition_layout_check1.inc eval DROP TABLE t1; } diff --git a/mysql-test/suite/parts/inc/partition_syntax_2.inc b/mysql-test/suite/parts/inc/partition_syntax_2.inc index 9adf1c9b2a0..b8e728ee79b 100644 --- a/mysql-test/suite/parts/inc/partition_syntax_2.inc +++ b/mysql-test/suite/parts/inc/partition_syntax_2.inc @@ -1,11 +1,11 @@ ################################################################################ -# include/partition_syntax_2.inc # +# inc/partition_syntax_2.inc # # # # Purpose: # -# Auxiliary script, only useful when sourced by include/partition_syntax.inc.# +# Auxiliary script, only useful when sourced by inc/partition_syntax.inc. # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-05-11 # # Change Author: # # Change Date: # @@ -35,11 +35,7 @@ if (`SELECT @@session.storage_engine IN('ndbcluster')`) ) $partition_scheme; eval $insert_all; - if ($fixed_bug18735) - { --source suite/parts/inc/partition_check.inc - # --source include/partition_check.inc - } DROP TABLE t1; eval CREATE TABLE t1 ( $column_list, @@ -47,10 +43,6 @@ if (`SELECT @@session.storage_engine IN('ndbcluster')`) ) $partition_scheme; eval $insert_all; - if ($fixed_bug18735) - { --source suite/parts/inc/partition_check.inc - # --source include/partition_check.inc - } DROP TABLE t1; } diff --git a/mysql-test/suite/parts/inc/partition_text.inc b/mysql-test/suite/parts/inc/partition_text.inc index a655552c457..761f5dfb118 100644 --- a/mysql-test/suite/parts/inc/partition_text.inc +++ b/mysql-test/suite/parts/inc/partition_text.inc @@ -1,3 +1,5 @@ +--echo ---- Partitioning and text data type + --disable_query_log # DATA DIRECTORY eval SET @data_dir = 'DATA DIRECTORY = @@ -53,4 +55,3 @@ partition by key (a) partitions 30; #select count(*) from t2; #select * from t2; #drop table t2; - diff --git a/mysql-test/suite/parts/inc/partition_trigg1.inc b/mysql-test/suite/parts/inc/partition_trigg1.inc index 7ebf2f411d3..7bb5aa162a9 100644 --- a/mysql-test/suite/parts/inc/partition_trigg1.inc +++ b/mysql-test/suite/parts/inc/partition_trigg1.inc @@ -1,8 +1,8 @@ ################################################################################ -# include/partition_trigg1.inc # +# inc/partition_trigg1.inc # # # # Purpose: # -# Auxiliary script, only useful when sourced by include/partition_check.inc. # +# Auxiliary script, only useful when sourced by inc/partition_check.inc. # # One trigger uses new values (--> event UPDATE, INSERT only) # # One trigger uses old values (--> event UPDATE, DELETE only) # # # @@ -12,7 +12,7 @@ # 4. Revert the modifications # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -45,7 +45,7 @@ if ($run1) eval $statement; - # Check of preceeding statement via Select + # Check of preceding statement via Select if ($no_debug) { --disable_query_log @@ -94,7 +94,7 @@ if ($run1) eval $statement; - # Check of preceeding statement via Select + # Check of preceding statement via Select if ($no_debug) { --disable_query_log diff --git a/mysql-test/suite/parts/inc/partition_trigg2.inc b/mysql-test/suite/parts/inc/partition_trigg2.inc index 767dbd52e47..2849ca21ff0 100644 --- a/mysql-test/suite/parts/inc/partition_trigg2.inc +++ b/mysql-test/suite/parts/inc/partition_trigg2.inc @@ -1,8 +1,8 @@ ################################################################################ -# include/partition_trigg2.inc # +# inc/partition_trigg2.inc # # # # Purpose: # -# Auxiliary script, only useful when sourced by include/partition_check.inc. # +# Auxiliary script, only useful when sourced by inc/partition_check.inc. # # The trigger uses new values (--> event UPDATE, INSERT only) # # # # 1. Create a trigger # @@ -11,7 +11,7 @@ # 4. Revert the modifications # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -27,7 +27,7 @@ BEGIN END| delimiter ;| eval $statement; -# Check of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log diff --git a/mysql-test/suite/parts/inc/partition_trigg3.inc b/mysql-test/suite/parts/inc/partition_trigg3.inc index a129cf75a1d..b56847ada44 100644 --- a/mysql-test/suite/parts/inc/partition_trigg3.inc +++ b/mysql-test/suite/parts/inc/partition_trigg3.inc @@ -1,8 +1,8 @@ -############################################################################### -# include/partition_trigg3.inc # +################################################################################ +# inc/partition_trigg3.inc # # # # Purpose: # -# Auxiliary script, only useful when sourced by include/partition_check.inc. # +# Auxiliary script, only useful when sourced by inc/partition_check.inc. # # The trigger uses new values (--> event UPDATE, INSERT only) # # # # 1. Create a trigger # @@ -11,23 +11,13 @@ # 4. Revert the modifications # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # # Change: # ################################################################################ -# include/partition_trigg3.inc -# -# Auxiliary script, only useful when sourced by include/partition_check.inc. -# -# 1. Create a trigger -# 2. Execute a statement, which activates the trigger -# 3. Check the results of the trigger activity -# 4. Revert the modifications -# - delimiter |; # Original version of the trigger # eval CREATE TRIGGER trg_3 $event ON t1 FOR EACH ROW @@ -55,20 +45,12 @@ END| delimiter ;| # Additional statements because of Bug(limitation)#17704 SET @counter = 1; -if ($fixed_bug18730) -{ # Bug#18730 Partitions: NDB, crash on SELECT MIN(<unique column>) SELECT MAX(f_int1), MIN(f_int2) INTO @my_max1,@my_min2 FROM t1; -} -if (!$fixed_bug18730) -{ -# Bug#18730 Partitions: NDB, crash on SELECT MIN(<unique column>) -SELECT @max_row, 1 INTO @my_max1,@my_min2; -} # Additional statements end eval $statement; DROP TRIGGER trg_3; -# Check of preceeding statement via Select +# Check of preceding statement via Select if ($no_debug) { --disable_query_log diff --git a/mysql-test/suite/parts/inc/partition_value.inc b/mysql-test/suite/parts/inc/partition_value.inc index 58691752bdf..3e25e740de6 100644 --- a/mysql-test/suite/parts/inc/partition_value.inc +++ b/mysql-test/suite/parts/inc/partition_value.inc @@ -1,11 +1,11 @@ ################################################################################ -# include/partition_value.inc # +# inc/partition_value.inc # # # # Purpose: # # Tests around "exotic" values calculated by the partitioning function # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-04-11 # # Change Author: # # Change Date: # diff --git a/mysql-test/suite/parts/inc/partition_varbinary.inc b/mysql-test/suite/parts/inc/partition_varbinary.inc index b112cbe312e..48fd6d890d8 100644 --- a/mysql-test/suite/parts/inc/partition_varbinary.inc +++ b/mysql-test/suite/parts/inc/partition_varbinary.inc @@ -1,3 +1,5 @@ +--echo ---- Partitioning and varbinary data type + --disable_query_log # DATA DIRECTORY eval SET @data_dir = 'DATA DIRECTORY = diff --git a/mysql-test/suite/parts/inc/partition_varchar.inc b/mysql-test/suite/parts/inc/partition_varchar.inc index 1cd33fa49da..c018a16e919 100644 --- a/mysql-test/suite/parts/inc/partition_varchar.inc +++ b/mysql-test/suite/parts/inc/partition_varchar.inc @@ -1,3 +1,5 @@ +--echo ---- Partitioning and varchar data type + --disable_query_log # DATA DIRECTORY eval SET @data_dir = 'DATA DIRECTORY = diff --git a/mysql-test/suite/parts/r/partition_alter1_innodb.result b/mysql-test/suite/parts/r/partition_alter1_innodb.result index 84765c14e16..a1d40af196c 100644 --- a/mysql-test/suite/parts/r/partition_alter1_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter1_innodb.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'InnoDB'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -386,7 +381,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -857,7 +852,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -875,7 +870,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1346,7 +1341,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1372,7 +1367,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1843,7 +1838,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1867,7 +1862,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2336,7 +2331,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2358,7 +2353,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2829,7 +2824,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2855,7 +2850,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3324,7 +3319,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3350,7 +3345,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3821,7 +3816,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3843,7 +3838,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4314,7 +4309,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -4333,7 +4328,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4804,7 +4799,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4822,7 +4817,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5293,7 +5288,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5319,7 +5314,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5790,7 +5785,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5814,7 +5809,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6283,7 +6278,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6305,7 +6300,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6776,7 +6771,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6802,7 +6797,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7271,7 +7266,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -7297,7 +7292,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7768,7 +7763,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -7790,7 +7785,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8261,7 +8256,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.1.4 UNIQUE INDEX consisting of two columns DROP TABLE IF EXISTS t1; @@ -8281,7 +8276,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8768,7 +8763,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -8786,7 +8781,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9273,7 +9268,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9299,7 +9294,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9786,7 +9781,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9810,7 +9805,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10295,7 +10290,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10317,7 +10312,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10804,7 +10799,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10830,7 +10825,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11315,7 +11310,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11341,7 +11336,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11828,7 +11823,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11850,7 +11845,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12337,7 +12332,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -12356,7 +12351,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12843,7 +12838,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12861,7 +12856,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13348,7 +13343,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13374,7 +13369,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13861,7 +13856,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13885,7 +13880,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14370,7 +14365,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14392,7 +14387,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14879,7 +14874,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14905,7 +14900,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15390,7 +15385,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -15416,7 +15411,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15903,7 +15898,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -15925,7 +15920,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16412,7 +16407,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 1.2 ADD PRIMARY KEY or UNIQUE INDEX to table with two columns @@ -16436,7 +16431,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16907,7 +16902,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16925,7 +16920,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17396,7 +17391,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17422,7 +17417,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17893,7 +17888,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17917,7 +17912,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18386,7 +18381,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18408,7 +18403,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18877,7 +18872,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18903,7 +18898,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19372,7 +19367,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19398,7 +19393,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19869,7 +19864,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19891,7 +19886,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20362,7 +20357,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -20381,7 +20376,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20852,7 +20847,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20870,7 +20865,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21341,7 +21336,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21367,7 +21362,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21838,7 +21833,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21862,7 +21857,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22331,7 +22326,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22353,7 +22348,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22822,7 +22817,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22848,7 +22843,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23317,7 +23312,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -23343,7 +23338,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23814,7 +23809,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -23836,7 +23831,7 @@ ALTER TABLE t1 ADD PRIMARY KEY(f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24307,7 +24302,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.2.2 UNIQUE INDEX consisting of two columns DROP TABLE IF EXISTS t1; @@ -24327,7 +24322,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24814,7 +24809,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -24832,7 +24827,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25319,7 +25314,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25345,7 +25340,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25832,7 +25827,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25856,7 +25851,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26341,7 +26336,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26363,7 +26358,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26848,7 +26843,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26874,7 +26869,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27359,7 +27354,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27385,7 +27380,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27872,7 +27867,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27894,7 +27889,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28381,7 +28376,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -28400,7 +28395,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28887,7 +28882,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28905,7 +28900,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29392,7 +29387,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29418,7 +29413,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29905,7 +29900,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29929,7 +29924,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30414,7 +30409,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30436,7 +30431,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30921,7 +30916,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30947,7 +30942,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31432,7 +31427,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31458,7 +31453,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31945,7 +31940,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31967,7 +31962,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32454,7 +32449,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.2.3 PRIMARY KEY and UNIQUE INDEX consisting of two columns DROP TABLE IF EXISTS t1; @@ -32474,7 +32469,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32946,7 +32941,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32964,7 +32959,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33436,7 +33431,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33462,7 +33457,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33934,7 +33929,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33958,7 +33953,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34428,7 +34423,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34450,7 +34445,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34920,7 +34915,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34946,7 +34941,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35416,7 +35411,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -35442,7 +35437,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35914,7 +35909,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -35936,7 +35931,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2), ADD PRIMARY KEY(f_int2,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36408,7 +36403,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -36427,7 +36422,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36899,7 +36894,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -36917,7 +36912,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -37389,7 +37384,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -37415,7 +37410,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -37887,7 +37882,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -37911,7 +37906,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -38381,7 +38376,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -38403,7 +38398,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -38873,7 +38868,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -38899,7 +38894,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -39369,7 +39364,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -39395,7 +39390,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -39867,7 +39862,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -39889,7 +39884,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -40361,7 +40356,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -40380,7 +40375,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -40852,7 +40847,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -40870,7 +40865,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -41342,7 +41337,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -41368,7 +41363,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -41840,7 +41835,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -41864,7 +41859,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -42334,7 +42329,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -42356,7 +42351,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -42826,7 +42821,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -42852,7 +42847,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -43322,7 +43317,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -43348,7 +43343,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -43820,7 +43815,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -43842,7 +43837,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1), ADD PRIMARY KEY(f_int1,f_ 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -44314,7 +44309,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #======================================================================== @@ -44341,7 +44336,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -44760,7 +44755,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -44778,7 +44773,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -45197,7 +45192,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -45223,7 +45218,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -45642,7 +45637,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -45666,7 +45661,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -46083,7 +46078,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -46105,7 +46100,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -46524,7 +46519,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -46550,7 +46545,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -46967,7 +46962,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -46993,7 +46988,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -47412,7 +47407,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -47434,7 +47429,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -47853,7 +47848,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -47872,7 +47867,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -48291,7 +48286,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -48309,7 +48304,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -48728,7 +48723,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -48754,7 +48749,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -49173,7 +49168,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -49197,7 +49192,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -49614,7 +49609,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -49636,7 +49631,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -50055,7 +50050,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -50081,7 +50076,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -50498,7 +50493,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -50524,7 +50519,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -50943,7 +50938,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -50965,7 +50960,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -51384,7 +51379,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -51403,7 +51398,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -51838,7 +51833,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -51856,7 +51851,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -52291,7 +52286,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -52317,7 +52312,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -52752,7 +52747,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -52776,7 +52771,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -53209,7 +53204,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -53231,7 +53226,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -53666,7 +53661,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -53692,7 +53687,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -54125,7 +54120,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -54151,7 +54146,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -54586,7 +54581,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -54608,7 +54603,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -55043,7 +55038,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 2.2 Partitioning function contains two columns (f_int1,f_int2) @@ -55066,7 +55061,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -55485,7 +55480,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -55503,7 +55498,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -55922,7 +55917,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -55948,7 +55943,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -56367,7 +56362,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -56391,7 +56386,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -56808,7 +56803,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -56830,7 +56825,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -57247,7 +57242,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -57273,7 +57268,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -57690,7 +57685,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -57716,7 +57711,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -58135,7 +58130,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -58157,7 +58152,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -58576,7 +58571,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -58595,7 +58590,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -59014,7 +59009,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -59032,7 +59027,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -59451,7 +59446,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -59477,7 +59472,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -59896,7 +59891,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -59920,7 +59915,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -60337,7 +60332,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -60359,7 +60354,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -60776,7 +60771,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -60802,7 +60797,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -61219,7 +61214,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -61245,7 +61240,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -61664,7 +61659,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -61686,7 +61681,7 @@ ALTER TABLE t1 DROP PRIMARY KEY; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -62105,7 +62100,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.2.2 DROP UNIQUE INDEX consisting of two columns DROP TABLE IF EXISTS t1; @@ -62125,7 +62120,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -62560,7 +62555,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -62578,7 +62573,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -63013,7 +63008,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -63039,7 +63034,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -63474,7 +63469,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -63498,7 +63493,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -63931,7 +63926,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -63953,7 +63948,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -64386,7 +64381,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -64412,7 +64407,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -64845,7 +64840,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -64871,7 +64866,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -65306,7 +65301,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -65328,7 +65323,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -65763,7 +65758,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -65782,7 +65777,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -66217,7 +66212,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -66235,7 +66230,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -66670,7 +66665,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -66696,7 +66691,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -67131,7 +67126,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -67155,7 +67150,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -67588,7 +67583,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -67610,7 +67605,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -68043,7 +68038,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -68069,7 +68064,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -68502,7 +68497,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -68528,7 +68523,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -68963,7 +68958,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -68985,7 +68980,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -69420,7 +69415,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.2.3 DROP PRIMARY KEY + UNIQUE INDEX consisting of two columns DROP TABLE IF EXISTS t1; @@ -69440,7 +69435,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -69859,7 +69854,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -69877,7 +69872,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -70296,7 +70291,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -70322,7 +70317,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -70741,7 +70736,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -70765,7 +70760,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -71182,7 +71177,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -71204,7 +71199,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -71621,7 +71616,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -71647,7 +71642,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -72064,7 +72059,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -72090,7 +72085,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -72509,7 +72504,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -72531,7 +72526,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -72950,7 +72945,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -72969,7 +72964,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -73388,7 +73383,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -73406,7 +73401,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -73825,7 +73820,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -73851,7 +73846,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -74270,7 +74265,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -74294,7 +74289,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -74711,7 +74706,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -74733,7 +74728,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -75150,7 +75145,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -75176,7 +75171,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -75593,7 +75588,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -75619,7 +75614,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -76038,7 +76033,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -76060,7 +76055,7 @@ ALTER TABLE t1 DROP PRIMARY KEY, DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -76479,7 +76474,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -76498,7 +76493,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -76933,7 +76928,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -76951,7 +76946,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -77386,7 +77381,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -77412,7 +77407,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -77847,7 +77842,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -77871,7 +77866,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -78304,7 +78299,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -78326,7 +78321,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -78759,7 +78754,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -78785,7 +78780,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -79218,7 +79213,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -79244,7 +79239,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -79679,7 +79674,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -79701,7 +79696,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -80136,7 +80131,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; diff --git a/mysql-test/suite/parts/r/partition_alter1_myisam.result b/mysql-test/suite/parts/r/partition_alter1_myisam.result index 29c5f09eb3b..1058342aa8d 100644 --- a/mysql-test/suite/parts/r/partition_alter1_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter1_myisam.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'MyISAM'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -227,7 +222,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -724,7 +719,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -742,7 +737,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1245,7 +1240,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1271,7 +1266,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1780,7 +1775,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1804,7 +1799,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2307,7 +2302,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2329,7 +2324,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2838,7 +2833,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2864,7 +2859,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3371,7 +3366,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3397,7 +3392,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3906,7 +3901,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3928,7 +3923,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4439,7 +4434,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -4458,7 +4453,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4955,7 +4950,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4973,7 +4968,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5476,7 +5471,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5502,7 +5497,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6011,7 +6006,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6035,7 +6030,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6538,7 +6533,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6560,7 +6555,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7069,7 +7064,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -7095,7 +7090,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7602,7 +7597,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -7628,7 +7623,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8137,7 +8132,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -8159,7 +8154,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8670,7 +8665,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 1.2 ADD PRIMARY KEY or UNIQUE INDEX to table with two columns @@ -8694,7 +8689,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9191,7 +9186,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9209,7 +9204,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9712,7 +9707,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9738,7 +9733,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10247,7 +10242,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10271,7 +10266,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10774,7 +10769,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10796,7 +10791,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11303,7 +11298,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11329,7 +11324,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11836,7 +11831,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11862,7 +11857,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12371,7 +12366,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12393,7 +12388,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int1,f_int2); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12904,7 +12899,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -12923,7 +12918,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13420,7 +13415,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13438,7 +13433,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13941,7 +13936,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13967,7 +13962,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14476,7 +14471,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14500,7 +14495,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15003,7 +14998,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -15025,7 +15020,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15532,7 +15527,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -15558,7 +15553,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16065,7 +16060,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16091,7 +16086,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16600,7 +16595,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16622,7 +16617,7 @@ ALTER TABLE t1 ADD UNIQUE INDEX uidx1 (f_int2,f_int1); 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17133,7 +17128,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #======================================================================== @@ -17159,7 +17154,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17604,7 +17599,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17622,7 +17617,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18073,7 +18068,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18099,7 +18094,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18556,7 +18551,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18580,7 +18575,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19031,7 +19026,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19053,7 +19048,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19510,7 +19505,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19536,7 +19531,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19991,7 +19986,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20017,7 +20012,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20474,7 +20469,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20496,7 +20491,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20955,7 +20950,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 2.2 Partitioning function contains two columns (f_int1,f_int2) @@ -20978,7 +20973,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21423,7 +21418,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21441,7 +21436,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21892,7 +21887,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21918,7 +21913,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22375,7 +22370,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22399,7 +22394,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22850,7 +22845,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22872,7 +22867,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23327,7 +23322,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -23353,7 +23348,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23808,7 +23803,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -23834,7 +23829,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24291,7 +24286,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -24313,7 +24308,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24772,7 +24767,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -24791,7 +24786,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25236,7 +25231,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25254,7 +25249,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25705,7 +25700,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25731,7 +25726,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26188,7 +26183,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26212,7 +26207,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26663,7 +26658,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26685,7 +26680,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27140,7 +27135,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27166,7 +27161,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27621,7 +27616,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27647,7 +27642,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28104,7 +28099,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28126,7 +28121,7 @@ ALTER TABLE t1 DROP INDEX uidx1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28585,7 +28580,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -28604,7 +28599,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29049,7 +29044,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29067,7 +29062,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29518,7 +29513,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29544,7 +29539,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30001,7 +29996,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30025,7 +30020,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30476,7 +30471,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30498,7 +30493,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30953,7 +30948,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30979,7 +30974,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31434,7 +31429,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31460,7 +31455,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31917,7 +31912,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31939,7 +31934,7 @@ ALTER TABLE t1 DROP INDEX uidx1, DROP INDEX uidx2; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32398,7 +32393,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; diff --git a/mysql-test/suite/parts/r/partition_alter2_innodb.result b/mysql-test/suite/parts/r/partition_alter2_innodb.result index 833e82c6a89..0bb44bb2a1d 100644 --- a/mysql-test/suite/parts/r/partition_alter2_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter2_innodb.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'InnoDB'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -68,7 +63,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -503,7 +498,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -521,7 +516,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -956,7 +951,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -982,7 +977,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1417,7 +1412,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1441,7 +1436,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1874,7 +1869,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1896,7 +1891,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2331,7 +2326,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2357,7 +2352,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2790,7 +2785,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2816,7 +2811,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3251,7 +3246,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3273,7 +3268,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3708,7 +3703,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.1.2 PRIMARY KEY exists DROP TABLE IF EXISTS t1; @@ -3728,7 +3723,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4199,7 +4194,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4217,7 +4212,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4688,7 +4683,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4714,7 +4709,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5185,7 +5180,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5209,7 +5204,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5678,7 +5673,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5700,7 +5695,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6171,7 +6166,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6197,7 +6192,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6666,7 +6661,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6692,7 +6687,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7163,7 +7158,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -7185,7 +7180,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7656,7 +7651,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -7675,7 +7670,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8146,7 +8141,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -8164,7 +8159,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8635,7 +8630,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -8661,7 +8656,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9132,7 +9127,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9156,7 +9151,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9625,7 +9620,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9647,7 +9642,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10118,7 +10113,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10144,7 +10139,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10613,7 +10608,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10639,7 +10634,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11110,7 +11105,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11132,7 +11127,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11603,7 +11598,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.1.3 UNIQUE INDEX exists DROP TABLE IF EXISTS t1; @@ -11623,7 +11618,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12110,7 +12105,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12128,7 +12123,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12615,7 +12610,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12641,7 +12636,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13128,7 +13123,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13152,7 +13147,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13637,7 +13632,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13659,7 +13654,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14146,7 +14141,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14172,7 +14167,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14657,7 +14652,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14683,7 +14678,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15170,7 +15165,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -15192,7 +15187,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15679,7 +15674,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -15698,7 +15693,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16185,7 +16180,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16203,7 +16198,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16690,7 +16685,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16716,7 +16711,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17203,7 +17198,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17227,7 +17222,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17712,7 +17707,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17734,7 +17729,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18221,7 +18216,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18247,7 +18242,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18732,7 +18727,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18758,7 +18753,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19245,7 +19240,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19267,7 +19262,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19754,7 +19749,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 1.3 ALTER column f_int1 and f_int2 @@ -19778,7 +19773,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20213,7 +20208,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20231,7 +20226,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20666,7 +20661,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20692,7 +20687,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21127,7 +21122,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21151,7 +21146,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21584,7 +21579,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21606,7 +21601,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22041,7 +22036,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22067,7 +22062,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22500,7 +22495,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22526,7 +22521,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22961,7 +22956,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22983,7 +22978,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23418,7 +23413,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -23437,7 +23432,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23872,7 +23867,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -23890,7 +23885,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24325,7 +24320,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -24351,7 +24346,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24786,7 +24781,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -24810,7 +24805,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25243,7 +25238,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25265,7 +25260,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25698,7 +25693,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25724,7 +25719,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26157,7 +26152,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26183,7 +26178,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26618,7 +26613,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26640,7 +26635,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27075,7 +27070,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.3.2 PRIMARY KEY exists DROP TABLE IF EXISTS t1; @@ -27095,7 +27090,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27566,7 +27561,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27584,7 +27579,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28055,7 +28050,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28081,7 +28076,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28552,7 +28547,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28576,7 +28571,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29045,7 +29040,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29067,7 +29062,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29538,7 +29533,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29564,7 +29559,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30033,7 +30028,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30059,7 +30054,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30530,7 +30525,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30552,7 +30547,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31023,7 +31018,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -31042,7 +31037,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31513,7 +31508,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31531,7 +31526,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32002,7 +31997,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32028,7 +32023,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32499,7 +32494,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32523,7 +32518,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32992,7 +32987,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33014,7 +33009,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33483,7 +33478,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33509,7 +33504,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33978,7 +33973,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34004,7 +33999,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34475,7 +34470,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34497,7 +34492,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34968,7 +34963,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -34987,7 +34982,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35458,7 +35453,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -35476,7 +35471,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35947,7 +35942,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -35973,7 +35968,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36444,7 +36439,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -36468,7 +36463,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36937,7 +36932,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -36959,7 +36954,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -37430,7 +37425,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -37456,7 +37451,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -37925,7 +37920,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -37951,7 +37946,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -38422,7 +38417,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -38444,7 +38439,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -38915,7 +38910,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -38934,7 +38929,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -39405,7 +39400,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -39423,7 +39418,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -39894,7 +39889,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -39920,7 +39915,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -40391,7 +40386,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -40415,7 +40410,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -40884,7 +40879,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -40906,7 +40901,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -41375,7 +41370,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -41401,7 +41396,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -41870,7 +41865,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -41896,7 +41891,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -42367,7 +42362,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -42389,7 +42384,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -42860,7 +42855,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.3.3 UNIQUE INDEX exists DROP TABLE IF EXISTS t1; @@ -42880,7 +42875,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -43367,7 +43362,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -43385,7 +43380,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -43872,7 +43867,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -43898,7 +43893,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -44385,7 +44380,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -44409,7 +44404,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -44894,7 +44889,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -44916,7 +44911,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -45403,7 +45398,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -45429,7 +45424,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -45914,7 +45909,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -45940,7 +45935,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -46427,7 +46422,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -46449,7 +46444,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -46936,7 +46931,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -46955,7 +46950,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -47442,7 +47437,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -47460,7 +47455,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -47947,7 +47942,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -47973,7 +47968,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -48460,7 +48455,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -48484,7 +48479,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -48969,7 +48964,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -48991,7 +48986,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -49476,7 +49471,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -49502,7 +49497,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -49987,7 +49982,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -50013,7 +50008,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -50500,7 +50495,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -50522,7 +50517,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -51009,7 +51004,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -51028,7 +51023,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -51515,7 +51510,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -51533,7 +51528,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -52020,7 +52015,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -52046,7 +52041,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -52533,7 +52528,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -52557,7 +52552,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -53042,7 +53037,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -53064,7 +53059,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -53551,7 +53546,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -53577,7 +53572,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -54062,7 +54057,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -54088,7 +54083,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -54575,7 +54570,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -54597,7 +54592,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -55084,7 +55079,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -55103,7 +55098,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -55590,7 +55585,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -55608,7 +55603,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -56095,7 +56090,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -56121,7 +56116,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -56608,7 +56603,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -56632,7 +56627,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -57117,7 +57112,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -57139,7 +57134,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -57624,7 +57619,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -57650,7 +57645,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -58135,7 +58130,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -58161,7 +58156,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -58648,7 +58643,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -58670,7 +58665,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -59157,7 +59152,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #======================================================================== @@ -59185,7 +59180,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -59622,7 +59617,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -59640,7 +59635,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -60077,7 +60072,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -60103,7 +60098,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -60540,7 +60535,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -60564,7 +60559,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -60997,7 +60992,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -61019,7 +61014,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -61456,7 +61451,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -61482,7 +61477,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -61915,7 +61910,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -61941,7 +61936,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -62378,7 +62373,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -62400,7 +62395,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -62837,7 +62832,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -62856,7 +62851,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -63329,7 +63324,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -63347,7 +63342,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -63820,7 +63815,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -63846,7 +63841,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -64319,7 +64314,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -64343,7 +64338,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -64812,7 +64807,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -64834,7 +64829,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -65307,7 +65302,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -65333,7 +65328,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -65802,7 +65797,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -65828,7 +65823,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -66301,7 +66296,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -66323,7 +66318,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -66796,7 +66791,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -66815,7 +66810,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -67288,7 +67283,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -67306,7 +67301,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -67779,7 +67774,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -67805,7 +67800,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -68278,7 +68273,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -68302,7 +68297,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -68771,7 +68766,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -68793,7 +68788,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -69266,7 +69261,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -69292,7 +69287,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -69761,7 +69756,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -69787,7 +69782,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -70260,7 +70255,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -70282,7 +70277,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -70755,7 +70750,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.1.3 UNIQUE INDEX exists DROP TABLE IF EXISTS t1; @@ -70775,7 +70770,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -71264,7 +71259,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -71282,7 +71277,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -71771,7 +71766,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -71797,7 +71792,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -72286,7 +72281,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -72310,7 +72305,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -72795,7 +72790,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -72817,7 +72812,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -73306,7 +73301,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -73332,7 +73327,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -73817,7 +73812,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -73843,7 +73838,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -74332,7 +74327,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -74354,7 +74349,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -74843,7 +74838,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -74862,7 +74857,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -75351,7 +75346,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -75369,7 +75364,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -75858,7 +75853,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -75884,7 +75879,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -76373,7 +76368,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -76397,7 +76392,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -76882,7 +76877,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -76904,7 +76899,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -77393,7 +77388,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -77419,7 +77414,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -77904,7 +77899,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -77930,7 +77925,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -78419,7 +78414,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -78441,7 +78436,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -78930,7 +78925,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 2.3 ALTER column f_int1 and f_int2 used in partitioning function @@ -78953,7 +78948,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -79391,7 +79386,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -79409,7 +79404,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -79847,7 +79842,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -79873,7 +79868,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -80311,7 +80306,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -80335,7 +80330,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -80773,7 +80768,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -80795,7 +80790,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -81233,7 +81228,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -81259,7 +81254,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -81697,7 +81692,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -81723,7 +81718,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -82161,7 +82156,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -82183,7 +82178,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -82621,7 +82616,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -82640,7 +82635,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -83078,7 +83073,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -83096,7 +83091,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -83534,7 +83529,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -83560,7 +83555,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -83998,7 +83993,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -84022,7 +84017,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -84460,7 +84455,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -84482,7 +84477,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -84920,7 +84915,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -84946,7 +84941,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -85384,7 +85379,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -85410,7 +85405,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -85848,7 +85843,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -85870,7 +85865,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -86308,7 +86303,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.3.2 PRIMARY KEY exists DROP TABLE IF EXISTS t1; @@ -86328,7 +86323,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -86802,7 +86797,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -86820,7 +86815,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -87294,7 +87289,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -87320,7 +87315,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -87794,7 +87789,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -87818,7 +87813,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -88292,7 +88287,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -88314,7 +88309,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -88788,7 +88783,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -88814,7 +88809,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -89288,7 +89283,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -89314,7 +89309,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -89788,7 +89783,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -89810,7 +89805,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -90284,7 +90279,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -90303,7 +90298,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -90777,7 +90772,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -90795,7 +90790,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -91269,7 +91264,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -91295,7 +91290,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -91769,7 +91764,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -91793,7 +91788,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -92267,7 +92262,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -92289,7 +92284,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -92763,7 +92758,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -92789,7 +92784,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -93263,7 +93258,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -93289,7 +93284,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -93763,7 +93758,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -93785,7 +93780,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -94259,7 +94254,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -94278,7 +94273,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -94752,7 +94747,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -94770,7 +94765,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -95244,7 +95239,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -95270,7 +95265,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -95744,7 +95739,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -95768,7 +95763,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -96242,7 +96237,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -96264,7 +96259,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -96738,7 +96733,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -96764,7 +96759,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -97238,7 +97233,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -97264,7 +97259,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -97738,7 +97733,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -97760,7 +97755,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -98234,7 +98229,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -98253,7 +98248,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -98727,7 +98722,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -98745,7 +98740,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -99219,7 +99214,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -99245,7 +99240,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -99719,7 +99714,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -99743,7 +99738,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -100217,7 +100212,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -100239,7 +100234,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -100713,7 +100708,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -100739,7 +100734,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -101213,7 +101208,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -101239,7 +101234,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -101713,7 +101708,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -101735,7 +101730,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -102209,7 +102204,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.3.3 UNIQUE INDEX exists DROP TABLE IF EXISTS t1; @@ -102229,7 +102224,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -102719,7 +102714,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -102737,7 +102732,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -103227,7 +103222,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -103253,7 +103248,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -103743,7 +103738,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -103767,7 +103762,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -104257,7 +104252,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -104279,7 +104274,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -104769,7 +104764,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -104795,7 +104790,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -105285,7 +105280,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -105311,7 +105306,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -105801,7 +105796,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -105823,7 +105818,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -106313,7 +106308,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -106332,7 +106327,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -106822,7 +106817,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -106840,7 +106835,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -107330,7 +107325,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -107356,7 +107351,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -107846,7 +107841,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -107870,7 +107865,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -108360,7 +108355,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -108382,7 +108377,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -108872,7 +108867,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -108898,7 +108893,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -109388,7 +109383,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -109414,7 +109409,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -109904,7 +109899,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -109926,7 +109921,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -110416,7 +110411,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -110435,7 +110430,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -110925,7 +110920,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -110943,7 +110938,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -111433,7 +111428,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -111459,7 +111454,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -111949,7 +111944,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -111973,7 +111968,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -112463,7 +112458,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -112485,7 +112480,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -112975,7 +112970,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -113001,7 +112996,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -113491,7 +113486,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -113517,7 +113512,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -114007,7 +114002,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -114029,7 +114024,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -114519,7 +114514,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -114538,7 +114533,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -115028,7 +115023,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -115046,7 +115041,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -115536,7 +115531,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -115562,7 +115557,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -116052,7 +116047,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -116076,7 +116071,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -116566,7 +116561,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -116588,7 +116583,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -117078,7 +117073,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -117104,7 +117099,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -117594,7 +117589,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -117620,7 +117615,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -118110,7 +118105,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -118132,7 +118127,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -118622,7 +118617,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; diff --git a/mysql-test/suite/parts/r/partition_alter2_myisam.result b/mysql-test/suite/parts/r/partition_alter2_myisam.result index 65bf85e61e5..18abf7380c3 100644 --- a/mysql-test/suite/parts/r/partition_alter2_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter2_myisam.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'MyISAM'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -68,7 +63,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -513,7 +508,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -531,7 +526,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -982,7 +977,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1008,7 +1003,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1465,7 +1460,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1489,7 +1484,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1940,7 +1935,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1962,7 +1957,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2419,7 +2414,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2445,7 +2440,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2900,7 +2895,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2926,7 +2921,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3383,7 +3378,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3405,7 +3400,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3864,7 +3859,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.1.3 UNIQUE INDEX exists DROP TABLE IF EXISTS t1; @@ -3884,7 +3879,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4381,7 +4376,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4399,7 +4394,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4902,7 +4897,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4928,7 +4923,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5437,7 +5432,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5461,7 +5456,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5964,7 +5959,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5986,7 +5981,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6495,7 +6490,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6521,7 +6516,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7028,7 +7023,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -7054,7 +7049,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7563,7 +7558,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -7585,7 +7580,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8096,7 +8091,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -8115,7 +8110,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8612,7 +8607,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -8630,7 +8625,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9133,7 +9128,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9159,7 +9154,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9668,7 +9663,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9692,7 +9687,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10195,7 +10190,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10217,7 +10212,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10726,7 +10721,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10752,7 +10747,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11259,7 +11254,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11285,7 +11280,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11794,7 +11789,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11816,7 +11811,7 @@ ALTER TABLE t1 MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12327,7 +12322,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 1.3 ALTER column f_int1 and f_int2 @@ -12351,7 +12346,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12796,7 +12791,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12814,7 +12809,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13265,7 +13260,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13291,7 +13286,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13748,7 +13743,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13772,7 +13767,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14223,7 +14218,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14245,7 +14240,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14702,7 +14697,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14728,7 +14723,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15183,7 +15178,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -15209,7 +15204,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15666,7 +15661,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -15688,7 +15683,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16147,7 +16142,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -16166,7 +16161,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16611,7 +16606,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16629,7 +16624,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17080,7 +17075,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17106,7 +17101,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17563,7 +17558,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17587,7 +17582,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18038,7 +18033,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18060,7 +18055,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18515,7 +18510,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18541,7 +18536,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18996,7 +18991,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19022,7 +19017,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19479,7 +19474,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19501,7 +19496,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19960,7 +19955,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.3.3 UNIQUE INDEX exists DROP TABLE IF EXISTS t1; @@ -19980,7 +19975,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20477,7 +20472,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20495,7 +20490,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20998,7 +20993,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21024,7 +21019,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21533,7 +21528,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21557,7 +21552,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22060,7 +22055,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22082,7 +22077,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22591,7 +22586,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22617,7 +22612,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23124,7 +23119,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -23150,7 +23145,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23659,7 +23654,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -23681,7 +23676,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24192,7 +24187,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -24211,7 +24206,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24708,7 +24703,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -24726,7 +24721,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25229,7 +25224,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25255,7 +25250,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25764,7 +25759,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25788,7 +25783,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26291,7 +26286,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26313,7 +26308,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26820,7 +26815,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26846,7 +26841,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27353,7 +27348,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27379,7 +27374,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27888,7 +27883,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27910,7 +27905,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28421,7 +28416,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -28440,7 +28435,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28937,7 +28932,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28955,7 +28950,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29458,7 +29453,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29484,7 +29479,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29993,7 +29988,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30017,7 +30012,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30520,7 +30515,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30542,7 +30537,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31051,7 +31046,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31077,7 +31072,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31584,7 +31579,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31610,7 +31605,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32119,7 +32114,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32141,7 +32136,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32652,7 +32647,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -32671,7 +32666,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33168,7 +33163,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33186,7 +33181,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33689,7 +33684,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33715,7 +33710,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34224,7 +34219,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34248,7 +34243,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34751,7 +34746,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34773,7 +34768,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35280,7 +35275,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -35306,7 +35301,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35813,7 +35808,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -35839,7 +35834,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36348,7 +36343,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -36370,7 +36365,7 @@ ALTER TABLE t1 MODIFY f_int1 BIGINT, MODIFY f_int2 BIGINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36881,7 +36876,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #======================================================================== @@ -36909,7 +36904,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -37356,7 +37351,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -37374,7 +37369,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -37827,7 +37822,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -37853,7 +37848,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -38312,7 +38307,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -38336,7 +38331,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -38787,7 +38782,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -38809,7 +38804,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -39268,7 +39263,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -39294,7 +39289,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -39749,7 +39744,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -39775,7 +39770,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -40234,7 +40229,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -40256,7 +40251,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -40717,7 +40712,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.1.3 UNIQUE INDEX exists DROP TABLE IF EXISTS t1; @@ -40737,7 +40732,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -41236,7 +41231,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -41254,7 +41249,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -41759,7 +41754,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -41785,7 +41780,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -42296,7 +42291,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -42320,7 +42315,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -42823,7 +42818,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -42845,7 +42840,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -43356,7 +43351,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -43382,7 +43377,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -43889,7 +43884,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -43915,7 +43910,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -44426,7 +44421,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -44448,7 +44443,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -44961,7 +44956,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -44980,7 +44975,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -45479,7 +45474,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -45497,7 +45492,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -46002,7 +45997,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -46028,7 +46023,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -46539,7 +46534,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -46563,7 +46558,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -47066,7 +47061,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -47088,7 +47083,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -47599,7 +47594,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -47625,7 +47620,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -48132,7 +48127,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -48158,7 +48153,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -48669,7 +48664,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -48691,7 +48686,7 @@ ALTER TABLE t1 MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -49204,7 +49199,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 2.3 ALTER column f_int1 and f_int2 used in partitioning function @@ -49227,7 +49222,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -49675,7 +49670,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -49693,7 +49688,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -50147,7 +50142,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -50173,7 +50168,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -50633,7 +50628,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -50657,7 +50652,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -51113,7 +51108,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -51135,7 +51130,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -51595,7 +51590,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -51621,7 +51616,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -52081,7 +52076,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -52107,7 +52102,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -52567,7 +52562,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -52589,7 +52584,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -53051,7 +53046,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -53070,7 +53065,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -53518,7 +53513,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -53536,7 +53531,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -53990,7 +53985,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -54016,7 +54011,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -54476,7 +54471,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -54500,7 +54495,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -54956,7 +54951,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -54978,7 +54973,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -55438,7 +55433,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -55464,7 +55459,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -55924,7 +55919,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -55950,7 +55945,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -56410,7 +56405,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -56432,7 +56427,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -56894,7 +56889,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.3.3 UNIQUE INDEX exists DROP TABLE IF EXISTS t1; @@ -56914,7 +56909,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -57414,7 +57409,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -57432,7 +57427,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -57938,7 +57933,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -57964,7 +57959,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -58476,7 +58471,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -58500,7 +58495,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -59008,7 +59003,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -59030,7 +59025,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -59542,7 +59537,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -59568,7 +59563,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -60080,7 +60075,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -60106,7 +60101,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -60618,7 +60613,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -60640,7 +60635,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -61154,7 +61149,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -61173,7 +61168,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -61673,7 +61668,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -61691,7 +61686,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -62197,7 +62192,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -62223,7 +62218,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -62735,7 +62730,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -62759,7 +62754,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -63267,7 +63262,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -63289,7 +63284,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -63801,7 +63796,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -63827,7 +63822,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -64339,7 +64334,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -64365,7 +64360,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -64877,7 +64872,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -64899,7 +64894,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -65413,7 +65408,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -65432,7 +65427,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -65932,7 +65927,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -65950,7 +65945,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -66456,7 +66451,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -66482,7 +66477,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -66994,7 +66989,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -67018,7 +67013,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -67526,7 +67521,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -67548,7 +67543,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -68060,7 +68055,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -68086,7 +68081,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -68598,7 +68593,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -68624,7 +68619,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -69136,7 +69131,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -69158,7 +69153,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -69672,7 +69667,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -69691,7 +69686,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -70191,7 +70186,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -70209,7 +70204,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -70715,7 +70710,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -70741,7 +70736,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -71253,7 +71248,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -71277,7 +71272,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -71785,7 +71780,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -71807,7 +71802,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -72319,7 +72314,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -72345,7 +72340,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -72857,7 +72852,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -72883,7 +72878,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -73395,7 +73390,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -73417,7 +73412,7 @@ ALTER TABLE t1 MODIFY f_int1 MEDIUMINT, MODIFY f_int2 MEDIUMINT; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -73931,7 +73926,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; diff --git a/mysql-test/suite/parts/r/partition_alter3_innodb.result b/mysql-test/suite/parts/r/partition_alter3_innodb.result index 3cff9aa3b0a..2ca1e783839 100644 --- a/mysql-test/suite/parts/r/partition_alter3_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter3_innodb.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'InnoDB'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -318,7 +313,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra ALTER TABLE t1 REMOVE PARTITIONING; DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# Either the DROP TABLE or a preceding ALTER TABLE # <alter partitioning> worked incomplete. # We found: unified filelist @@ -597,7 +592,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra ALTER TABLE t1 REMOVE PARTITIONING; DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# Either the DROP TABLE or a preceding ALTER TABLE # <alter partitioning> worked incomplete. # We found: unified filelist diff --git a/mysql-test/suite/parts/r/partition_alter3_myisam.result b/mysql-test/suite/parts/r/partition_alter3_myisam.result index 8e93af1f3d0..5684ca89b1c 100644 --- a/mysql-test/suite/parts/r/partition_alter3_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter3_myisam.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'MyISAM'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ diff --git a/mysql-test/suite/parts/r/partition_alter4_innodb.result b/mysql-test/suite/parts/r/partition_alter4_innodb.result index aa8ba992808..0e6f0c22f93 100644 --- a/mysql-test/suite/parts/r/partition_alter4_innodb.result +++ b/mysql-test/suite/parts/r/partition_alter4_innodb.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'InnoDB'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -67,7 +62,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -502,7 +497,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -520,7 +515,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -955,7 +950,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -981,7 +976,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1416,7 +1411,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1440,7 +1435,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1873,7 +1868,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1895,7 +1890,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2330,7 +2325,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2356,7 +2351,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2789,7 +2784,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2815,7 +2810,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3250,7 +3245,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3272,7 +3267,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3707,7 +3702,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.2 ALTER ... ANALYZE PARTITION part_1,part_2; DROP TABLE IF EXISTS t1; @@ -3727,7 +3722,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4162,7 +4157,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4180,7 +4175,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4615,7 +4610,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4641,7 +4636,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5076,7 +5071,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5100,7 +5095,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5533,7 +5528,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5555,7 +5550,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5990,7 +5985,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6016,7 +6011,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6449,7 +6444,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6475,7 +6470,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6910,7 +6905,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6932,7 +6927,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7367,7 +7362,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.3 ALTER ... ANALYZE PARTITION part_1,part_2,part_5,part_6,part_10; DROP TABLE IF EXISTS t1; @@ -7710,7 +7705,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8145,7 +8140,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -8163,7 +8158,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8598,7 +8593,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -8624,7 +8619,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9059,7 +9054,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9083,7 +9078,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9516,7 +9511,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9538,7 +9533,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9973,7 +9968,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9999,7 +9994,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10432,7 +10427,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10458,7 +10453,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10893,7 +10888,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10915,7 +10910,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11350,7 +11345,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.2 ALTER ... CHECK PARTITION part_1,part_2; DROP TABLE IF EXISTS t1; @@ -11370,7 +11365,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11805,7 +11800,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11823,7 +11818,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12258,7 +12253,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12284,7 +12279,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12719,7 +12714,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12743,7 +12738,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13176,7 +13171,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13198,7 +13193,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13633,7 +13628,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13659,7 +13654,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14092,7 +14087,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14118,7 +14113,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14553,7 +14548,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14575,7 +14570,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15010,7 +15005,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.3 ALTER ... CHECK PARTITION part_1,part_2,part_5,part_6,part_10; DROP TABLE IF EXISTS t1; @@ -15996,7 +15991,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16431,7 +16426,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16449,7 +16444,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16884,7 +16879,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16910,7 +16905,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17345,7 +17340,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17369,7 +17364,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17802,7 +17797,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17824,7 +17819,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18259,7 +18254,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18285,7 +18280,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18718,7 +18713,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18744,7 +18739,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19179,7 +19174,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19201,7 +19196,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19636,7 +19631,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 4.2 ALTER ... REBUILD PARTITION part_1,part_2; DROP TABLE IF EXISTS t1; @@ -19656,7 +19651,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20091,7 +20086,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20109,7 +20104,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20544,7 +20539,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20570,7 +20565,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21005,7 +21000,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21029,7 +21024,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21462,7 +21457,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21484,7 +21479,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21919,7 +21914,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21945,7 +21940,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22378,7 +22373,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22404,7 +22399,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22839,7 +22834,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22861,7 +22856,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23296,7 +23291,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 4.3 ALTER ... REBUILD PARTITION part_1,part_2,part_5,part_6,part_10; DROP TABLE IF EXISTS t1; @@ -23639,7 +23634,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24074,7 +24069,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -24092,7 +24087,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24527,7 +24522,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -24553,7 +24548,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24988,7 +24983,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25012,7 +25007,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25445,7 +25440,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25467,7 +25462,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25902,7 +25897,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25928,7 +25923,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26361,7 +26356,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26387,7 +26382,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26822,7 +26817,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26844,7 +26839,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27279,7 +27274,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 5.2 ALTER ... REBUILD PARTITION part_1,part_2; DROP TABLE IF EXISTS t1; @@ -27299,7 +27294,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27734,7 +27729,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27752,7 +27747,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28187,7 +28182,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28213,7 +28208,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28648,7 +28643,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28672,7 +28667,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29105,7 +29100,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29127,7 +29122,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29562,7 +29557,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29588,7 +29583,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30021,7 +30016,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30047,7 +30042,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30482,7 +30477,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30504,7 +30499,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30939,7 +30934,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 5.3 ALTER ... REBUILD PARTITION part_1,part_2,part_5,part_6,part_10; DROP TABLE IF EXISTS t1; @@ -31282,7 +31277,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31717,7 +31712,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31735,7 +31730,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32170,7 +32165,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32196,7 +32191,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32631,7 +32626,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32655,7 +32650,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33090,7 +33085,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33112,7 +33107,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33547,7 +33542,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33573,7 +33568,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34008,7 +34003,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34034,7 +34029,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34469,7 +34464,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34491,7 +34486,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34926,7 +34921,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; diff --git a/mysql-test/suite/parts/r/partition_alter4_myisam.result b/mysql-test/suite/parts/r/partition_alter4_myisam.result index 6697bb9805c..8eac8d414de 100644 --- a/mysql-test/suite/parts/r/partition_alter4_myisam.result +++ b/mysql-test/suite/parts/r/partition_alter4_myisam.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'MyISAM'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -67,7 +62,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -512,7 +507,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -530,7 +525,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -981,7 +976,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1007,7 +1002,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1464,7 +1459,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1488,7 +1483,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1939,7 +1934,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1961,7 +1956,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2418,7 +2413,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2444,7 +2439,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2899,7 +2894,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2925,7 +2920,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3382,7 +3377,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3404,7 +3399,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3863,7 +3858,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.2 ALTER ... ANALYZE PARTITION part_1,part_2; DROP TABLE IF EXISTS t1; @@ -3883,7 +3878,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4328,7 +4323,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4346,7 +4341,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4797,7 +4792,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4823,7 +4818,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5280,7 +5275,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5304,7 +5299,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5755,7 +5750,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5777,7 +5772,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6234,7 +6229,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6260,7 +6255,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6715,7 +6710,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6741,7 +6736,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7198,7 +7193,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -7220,7 +7215,7 @@ ALTER TABLE t1 ANALYZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7679,7 +7674,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.3 ALTER ... ANALYZE PARTITION part_1,part_2,part_5,part_6,part_10; DROP TABLE IF EXISTS t1; @@ -8022,7 +8017,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8467,7 +8462,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -8485,7 +8480,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8936,7 +8931,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -8962,7 +8957,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9419,7 +9414,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9443,7 +9438,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9894,7 +9889,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -9916,7 +9911,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10373,7 +10368,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10399,7 +10394,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10854,7 +10849,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10880,7 +10875,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11337,7 +11332,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11359,7 +11354,7 @@ ALTER TABLE t1 CHECK PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11818,7 +11813,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.2 ALTER ... CHECK PARTITION part_1,part_2; DROP TABLE IF EXISTS t1; @@ -11838,7 +11833,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12283,7 +12278,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12301,7 +12296,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12752,7 +12747,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12778,7 +12773,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13235,7 +13230,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13259,7 +13254,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13710,7 +13705,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13732,7 +13727,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14189,7 +14184,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14215,7 +14210,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14670,7 +14665,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14696,7 +14691,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15153,7 +15148,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -15175,7 +15170,7 @@ ALTER TABLE t1 CHECK PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15634,7 +15629,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 2.3 ALTER ... CHECK PARTITION part_1,part_2,part_5,part_6,part_10; DROP TABLE IF EXISTS t1; @@ -15977,7 +15972,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16422,7 +16417,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16440,7 +16435,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16891,7 +16886,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -16917,7 +16912,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17374,7 +17369,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17398,7 +17393,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17849,7 +17844,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -17871,7 +17866,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18328,7 +18323,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18354,7 +18349,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18809,7 +18804,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -18835,7 +18830,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19292,7 +19287,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19314,7 +19309,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19773,7 +19768,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 3.2 ALTER ... OPTIMIZE PARTITION part_1,part_2; DROP TABLE IF EXISTS t1; @@ -19793,7 +19788,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20238,7 +20233,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20256,7 +20251,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20707,7 +20702,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20733,7 +20728,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21190,7 +21185,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21214,7 +21209,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21665,7 +21660,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21687,7 +21682,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22144,7 +22139,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22170,7 +22165,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22625,7 +22620,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22651,7 +22646,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23108,7 +23103,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -23130,7 +23125,7 @@ ALTER TABLE t1 OPTIMIZE PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23589,7 +23584,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 3.3 ALTER ... OPTIMIZE PARTITION part_1,part_2,part_5,part_6,part_10; DROP TABLE IF EXISTS t1; @@ -23932,7 +23927,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24377,7 +24372,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -24395,7 +24390,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24846,7 +24841,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -24872,7 +24867,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25329,7 +25324,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25353,7 +25348,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25804,7 +25799,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -25826,7 +25821,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26283,7 +26278,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26309,7 +26304,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26764,7 +26759,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26790,7 +26785,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27247,7 +27242,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27269,7 +27264,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27728,7 +27723,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 4.2 ALTER ... REBUILD PARTITION part_1,part_2; DROP TABLE IF EXISTS t1; @@ -27748,7 +27743,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28193,7 +28188,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28211,7 +28206,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28662,7 +28657,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28688,7 +28683,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29145,7 +29140,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29169,7 +29164,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29620,7 +29615,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29642,7 +29637,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30099,7 +30094,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30125,7 +30120,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30580,7 +30575,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30606,7 +30601,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31063,7 +31058,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31085,7 +31080,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31544,7 +31539,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 4.3 ALTER ... REBUILD PARTITION part_1,part_2,part_5,part_6,part_10; DROP TABLE IF EXISTS t1; @@ -31887,7 +31882,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32332,7 +32327,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32350,7 +32345,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32801,7 +32796,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32827,7 +32822,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33284,7 +33279,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33308,7 +33303,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33759,7 +33754,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33781,7 +33776,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34238,7 +34233,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34264,7 +34259,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34719,7 +34714,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34745,7 +34740,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35202,7 +35197,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -35224,7 +35219,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35683,7 +35678,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 5.2 ALTER ... REBUILD PARTITION part_1,part_2; DROP TABLE IF EXISTS t1; @@ -35703,7 +35698,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36148,7 +36143,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -36166,7 +36161,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36617,7 +36612,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -36643,7 +36638,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -37100,7 +37095,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -37124,7 +37119,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -37575,7 +37570,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -37597,7 +37592,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -38054,7 +38049,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -38080,7 +38075,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -38535,7 +38530,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -38561,7 +38556,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -39018,7 +39013,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -39040,7 +39035,7 @@ ALTER TABLE t1 REBUILD PARTITION part_1,part_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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -39499,7 +39494,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 5.3 ALTER ... REBUILD PARTITION part_1,part_2,part_5,part_6,part_10; DROP TABLE IF EXISTS t1; @@ -39842,7 +39837,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -40284,7 +40279,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -40302,7 +40297,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -40744,7 +40739,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -40770,7 +40765,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -41212,7 +41207,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -41236,7 +41231,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -41678,7 +41673,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -41700,7 +41695,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -42142,7 +42137,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -42168,7 +42163,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -42610,7 +42605,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -42636,7 +42631,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -43078,7 +43073,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -43100,7 +43095,7 @@ ALTER TABLE t1 REMOVE PARTITIONING; 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 WHERE f_int1 BETWEEN @max_row_div2 AND @max_row; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -43542,7 +43537,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; diff --git a/mysql-test/suite/parts/r/partition_basic_innodb.result b/mysql-test/suite/parts/r/partition_basic_innodb.result index adcac5cccad..b9097e33ce0 100644 --- a/mysql-test/suite/parts/r/partition_basic_innodb.result +++ b/mysql-test/suite/parts/r/partition_basic_innodb.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'InnoDB'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -58,7 +53,7 @@ SET @@session.sql_mode= ''; 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -493,17 +488,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -938,17 +933,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1383,17 +1378,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1826,17 +1821,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2271,17 +2266,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2714,17 +2709,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3159,17 +3154,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3604,10 +3599,10 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# Either the DROP TABLE or a preceding ALTER TABLE # <alter partitioning> worked incomplete. # We found: unified filelist @@ -3615,7 +3610,7 @@ unified filelist # 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4050,17 +4045,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4495,17 +4490,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4940,17 +4935,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5383,17 +5378,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5828,17 +5823,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6271,17 +6266,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6716,17 +6711,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7161,10 +7156,10 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# Either the DROP TABLE or a preceding ALTER TABLE # <alter partitioning> worked incomplete. # We found: unified filelist @@ -7172,7 +7167,7 @@ unified filelist 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7607,17 +7602,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8052,17 +8047,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8497,17 +8492,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8940,17 +8935,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9385,17 +9380,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9828,17 +9823,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10273,10 +10268,10 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# Either the DROP TABLE or a preceding ALTER TABLE # <alter partitioning> worked incomplete. # We found: unified filelist @@ -10294,7 +10289,7 @@ f_charbig VARCHAR(1000) PARTITION BY HASH(f_int1 + f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10729,7 +10724,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -10742,7 +10737,7 @@ f_charbig VARCHAR(1000) PARTITION BY KEY(f_int1,f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11177,7 +11172,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11198,7 +11193,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11633,7 +11628,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11652,7 +11647,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12085,7 +12080,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12102,7 +12097,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12535,7 +12530,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12556,7 +12551,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12989,7 +12984,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13010,7 +13005,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13445,7 +13440,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13462,7 +13457,7 @@ SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13897,7 +13892,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 2 Tables with PRIMARY KEY and/or UNIQUE INDEXes @@ -13907,7 +13902,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14379,17 +14374,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14861,17 +14856,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15343,17 +15338,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15823,17 +15818,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16305,17 +16300,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16785,17 +16780,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17267,17 +17262,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17749,10 +17744,10 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# Either the DROP TABLE or a preceding ALTER TABLE # <alter partitioning> worked incomplete. # We found: unified filelist @@ -17760,7 +17755,7 @@ unified filelist 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18232,17 +18227,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18714,17 +18709,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19196,17 +19191,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19676,17 +19671,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20158,17 +20153,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20638,17 +20633,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21120,17 +21115,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21602,10 +21597,10 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# Either the DROP TABLE or a preceding ALTER TABLE # <alter partitioning> worked incomplete. # We found: unified filelist @@ -21613,7 +21608,7 @@ unified filelist 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22101,17 +22096,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22599,17 +22594,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23097,17 +23092,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -23593,17 +23588,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24091,17 +24086,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -24587,17 +24582,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25085,17 +25080,17 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -25583,10 +25578,10 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # Attention: There are unused files. -# Either the DROP TABLE or a preceeding ALTER TABLE +# Either the DROP TABLE or a preceding ALTER TABLE # <alter partitioning> worked incomplete. # We found: unified filelist @@ -25608,7 +25603,7 @@ f_charbig VARCHAR(1000) PARTITION BY HASH(f_int1 + f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26080,7 +26075,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26093,7 +26088,7 @@ f_charbig VARCHAR(1000) PARTITION BY KEY(f_int1,f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -26565,7 +26560,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -26586,7 +26581,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27058,7 +27053,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27077,7 +27072,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -27547,7 +27542,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -27564,7 +27559,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28034,7 +28029,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28055,7 +28050,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -28525,7 +28520,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -28546,7 +28541,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29018,7 +29013,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -29035,7 +29030,7 @@ SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29507,7 +29502,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -29521,7 +29516,7 @@ f_charbig VARCHAR(1000) PARTITION BY HASH(f_int1 + f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -29993,7 +29988,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30006,7 +30001,7 @@ f_charbig VARCHAR(1000) PARTITION BY KEY(f_int1,f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30478,7 +30473,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30499,7 +30494,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -30971,7 +30966,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -30990,7 +30985,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31460,7 +31455,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31477,7 +31472,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -31947,7 +31942,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -31968,7 +31963,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32438,7 +32433,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32459,7 +32454,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -32931,7 +32926,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -32948,7 +32943,7 @@ SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33420,7 +33415,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 ( @@ -33434,7 +33429,7 @@ f_charbig VARCHAR(1000) PARTITION BY HASH(f_int1 + f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -33922,7 +33917,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -33935,7 +33930,7 @@ f_charbig VARCHAR(1000) PARTITION BY KEY(f_int1,f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34423,7 +34418,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34444,7 +34439,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -34932,7 +34927,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -34951,7 +34946,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35437,7 +35432,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -35454,7 +35449,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -35940,7 +35935,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -35961,7 +35956,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36447,7 +36442,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -36468,7 +36463,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -36956,7 +36951,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -36973,7 +36968,7 @@ SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -37461,7 +37456,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; diff --git a/mysql-test/suite/parts/r/partition_basic_myisam.result b/mysql-test/suite/parts/r/partition_basic_myisam.result index db8918029f1..7e0d5bcd62a 100644 --- a/mysql-test/suite/parts/r/partition_basic_myisam.result +++ b/mysql-test/suite/parts/r/partition_basic_myisam.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'MyISAM'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -58,7 +53,7 @@ SET @@session.sql_mode= ''; 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -503,11 +498,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -958,11 +953,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1419,11 +1414,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1874,11 +1869,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2335,11 +2330,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2794,11 +2789,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3255,11 +3250,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3718,12 +3713,12 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3733,7 +3728,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD @@ -4164,37 +4159,37 @@ 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI # check layout success: 0 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4204,7 +4199,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD @@ -4647,37 +4642,37 @@ 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY HASH (f_int1) (PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p4 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION p5 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#p1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p4.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#p5.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#p1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p4.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#p5.MYI # check layout success: 0 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4687,7 +4682,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD @@ -5142,37 +5137,37 @@ 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_3.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part_N.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_3.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part_N.MYI # check layout success: 0 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5182,7 +5177,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD @@ -5627,37 +5622,37 @@ 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#parta.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parte.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partf.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parte.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partf.MYI # check layout success: 0 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5667,7 +5662,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD @@ -6122,37 +6117,37 @@ 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#parta#SP#partasp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#parta#SP#partasp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partb#SP#partbsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partc#SP#partcsp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#partd#SP#partdsp1.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#parta#SP#partasp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partb#SP#partbsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partc#SP#partcsp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#partd#SP#partdsp1.MYI # check layout success: 0 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6162,7 +6157,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD @@ -6615,37 +6610,37 @@ 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part1#SP#subpart11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#subpart12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#subpart22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#subpart32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#subpart42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#subpart12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#subpart22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#subpart32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart41.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#subpart42.MYI # check layout success: 0 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6655,7 +6650,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD @@ -7110,37 +7105,37 @@ 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part1#SP#sp11.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#sp12.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp21.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#sp22.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp31.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#sp32.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp41.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part4#SP#sp42.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp11.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#sp12.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp21.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#sp22.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp31.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#sp32.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp41.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part4#SP#sp42.MYI # check layout success: 0 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -7150,7 +7145,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD @@ -7609,38 +7604,38 @@ 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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/master-data/test/data/t1#P#part1#SP#part1sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part1#SP#part1sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part2#SP#part2sp2.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp0.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp1.MYD MYSQLTEST_VARDIR/master-data/test/data/t1#P#part3#SP#part3sp2.MYD MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part1#SP#part1sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part2#SP#part2sp2.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp0.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp1.MYI MYSQLTEST_VARDIR/master-data/test/index/t1#P#part3#SP#part3sp2.MYI # check layout success: 0 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8085,11 +8080,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8540,11 +8535,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -8554,7 +8549,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 INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD @@ -9001,11 +8996,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9015,7 +9010,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 INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD @@ -9456,11 +9451,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9470,7 +9465,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 INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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) INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD @@ -9917,11 +9912,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -9931,7 +9926,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 ENGINE = MyISAM, SUBPARTITION subpart42 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 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 @@ -10376,11 +10371,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -10390,7 +10385,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD @@ -10837,7 +10832,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 1.2 The partitioning function contains two columns. DROP TABLE IF EXISTS t1; @@ -10852,7 +10847,7 @@ f_charbig VARCHAR(1000) PARTITION BY HASH(f_int1 + f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11297,7 +11292,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11310,7 +11305,7 @@ f_charbig VARCHAR(1000) PARTITION BY KEY(f_int1,f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -11761,7 +11756,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -11782,7 +11777,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12239,7 +12234,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12258,7 +12253,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -12709,7 +12704,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -12726,7 +12721,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13181,7 +13176,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13202,7 +13197,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -13657,7 +13652,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -13678,7 +13673,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14135,7 +14130,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -14152,7 +14147,7 @@ SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -14611,7 +14606,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 2 Tables with PRIMARY KEY and/or UNIQUE INDEXes @@ -14621,7 +14616,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15119,11 +15114,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15627,11 +15622,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -15643,7 +15638,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,4)) (PARTITION part_3 VALUES IN (-3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_2 VALUES IN (-2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_1 VALUES IN (-1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part_N VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part0 VALUES IN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part1 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (3) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part0.MYD @@ -16141,11 +16136,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16157,7 +16152,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) (PARTITION parta VALUES LESS THAN (0) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (15) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION parte VALUES LESS THAN (20) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partf VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#parta.MYD @@ -16649,11 +16644,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -16665,7 +16660,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partb VALUES LESS THAN (5) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partc VALUES LESS THAN (10) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION partd VALUES LESS THAN (2147483646) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#parta#SP#partasp0.MYD @@ -17163,11 +17158,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17179,7 +17174,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY KEY (f_int1) (PARTITION part1 VALUES LESS THAN (0) (SUBPARTITION subpart11 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (5) (SUBPARTITION subpart21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (10) (SUBPARTITION subpart31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES LESS THAN (2147483646) (SUBPARTITION subpart41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION subpart42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD @@ -17675,11 +17670,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -17691,7 +17686,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp12 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part2 VALUES IN (1) (SUBPARTITION sp21 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp22 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part3 VALUES IN (2) (SUBPARTITION sp31 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp32 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM), PARTITION part4 VALUES IN (NULL) (SUBPARTITION sp41 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, SUBPARTITION sp42 DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM)) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#sp11.MYD @@ -18189,11 +18184,11 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -18205,7 +18200,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 DATA DIRECTORY='MYSQLTEST_VARDIR/master-data/test/data/' INDEX DIRECTORY='MYSQLTEST_VARDIR/master-data/test/index/' /*!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/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' 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) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part2 VALUES IN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM, PARTITION part3 VALUES IN (NULL) DATA DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/master-data/test/index' ENGINE = MyISAM) */ unified filelist $MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD @@ -18705,7 +18700,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 3 Tables with PRIMARY KEY and/or UNIQUE INDEXes @@ -18724,7 +18719,7 @@ f_charbig VARCHAR(1000) PARTITION BY HASH(f_int1 + f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19222,7 +19217,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19235,7 +19230,7 @@ f_charbig VARCHAR(1000) PARTITION BY KEY(f_int1,f_int2) 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -19739,7 +19734,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -19760,7 +19755,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20270,7 +20265,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20289,7 +20284,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -20793,7 +20788,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -20810,7 +20805,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21318,7 +21313,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21339,7 +21334,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -21847,7 +21842,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -21868,7 +21863,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22378,7 +22373,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -22395,7 +22390,7 @@ SUBPARTITION BY KEY(f_int2) SUBPARTITIONS 3 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -22907,7 +22902,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; DROP VIEW IF EXISTS v1; DROP TABLE IF EXISTS t1; diff --git a/mysql-test/suite/parts/r/partition_bit_myisam.result b/mysql-test/suite/parts/r/partition_bit_myisam.result index 2bd1b1afd2c..e5b31e0c154 100644 --- a/mysql-test/suite/parts/r/partition_bit_myisam.result +++ b/mysql-test/suite/parts/r/partition_bit_myisam.result @@ -23,7 +23,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` bit(1) NOT NULL DEFAULT '\0', PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ drop table t1; create table t1 (a bit(64), primary key (a)) engine='MyISAM' partition by key (a) partitions 2; @@ -66,7 +66,7 @@ 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 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values (b'1111111111111111111111111111111111111111111111111111111111111111'), (b'1000000000000000000000000000000000000000000000000000000000000000'), diff --git a/mysql-test/suite/parts/r/partition_char_innodb.result b/mysql-test/suite/parts/r/partition_char_innodb.result index 27399a0ad41..c9609537f08 100644 --- a/mysql-test/suite/parts/r/partition_char_innodb.result +++ b/mysql-test/suite/parts/r/partition_char_innodb.result @@ -1,3 +1,4 @@ +---- 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 = @@ -12,14 +13,12 @@ partition pa3 DATA DIRECTORY = partition pa4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=40 min_rows=2); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't1' show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` char(255) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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=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) */ insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64)); select * from t1; a @@ -40,14 +39,12 @@ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb drop table t1; create table t2 (a char(255) not null, primary key(a)) engine='InnoDB' partition by key (a) partitions 27; -Warnings: -Warning 1266 Using storage engine MyISAM for table 't2' show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `a` char(255) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26+54)); insert into t2 values (repeat(char(ascii('a')+1),25+54)); @@ -107,6 +104,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 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 = @@ -121,14 +119,12 @@ partition pa3 DATA DIRECTORY = partition pa4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=40 min_rows=2); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't1' show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` binary(255) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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=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) */ insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64)); select hex(a) from t1; hex(a) @@ -152,14 +148,12 @@ hex(a) drop table t1; create table t2 (a binary(255) not null, primary key(a)) engine='InnoDB' partition by key (a) partitions 27; -Warnings: -Warning 1266 Using storage engine MyISAM for table 't2' show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `a` binary(255) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26+54)); insert into t2 values (repeat(char(ascii('a')+1),25+54)); @@ -219,157 +213,7 @@ hex(a) 797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 drop table t2; -create table t3 (a binary(255) not null, primary key(a)) engine='InnoDB' -partition by range (ascii(a)) subpartition by key (a) subpartitions 4 ( -partition pa16 values less than (16), -partition pa32 values less than (32), -partition pa64 values less than (64), -partition pa128 values less than (128), -partition pa256 values less than (256) -); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't3' -show create table t3; -Table Create Table -t3 CREATE TABLE `t3` ( - `a` binary(255) NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (ascii(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 4 (PARTITION pa16 VALUES LESS THAN (16) ENGINE = MyISAM, PARTITION pa32 VALUES LESS THAN (32) ENGINE = MyISAM, PARTITION pa64 VALUES LESS THAN (64) ENGINE = MyISAM, PARTITION pa128 VALUES LESS THAN (128) ENGINE = MyISAM, PARTITION pa256 VALUES LESS THAN (256) ENGINE = MyISAM) */ -26 inserts; -insert into t3 values (repeat(char(ascii('a')+0),26+54)); -insert into t3 values (repeat(char(ascii('a')+1),25+54)); -insert into t3 values (repeat(char(ascii('a')+2),24+54)); -insert into t3 values (repeat(char(ascii('a')+3),23+54)); -insert into t3 values (repeat(char(ascii('a')+4),22+54)); -insert into t3 values (repeat(char(ascii('a')+5),21+54)); -insert into t3 values (repeat(char(ascii('a')+6),20+54)); -insert into t3 values (repeat(char(ascii('a')+7),19+54)); -insert into t3 values (repeat(char(ascii('a')+8),18+54)); -insert into t3 values (repeat(char(ascii('a')+9),17+54)); -insert into t3 values (repeat(char(ascii('a')+10),16+54)); -insert into t3 values (repeat(char(ascii('a')+11),15+54)); -insert into t3 values (repeat(char(ascii('a')+12),14+54)); -insert into t3 values (repeat(char(ascii('a')+13),13+54)); -insert into t3 values (repeat(char(ascii('a')+14),12+54)); -insert into t3 values (repeat(char(ascii('a')+15),11+54)); -insert into t3 values (repeat(char(ascii('a')+16),10+54)); -insert into t3 values (repeat(char(ascii('a')+17),9+54)); -insert into t3 values (repeat(char(ascii('a')+18),8+54)); -insert into t3 values (repeat(char(ascii('a')+19),7+54)); -insert into t3 values (repeat(char(ascii('a')+20),6+54)); -insert into t3 values (repeat(char(ascii('a')+21),5+54)); -insert into t3 values (repeat(char(ascii('a')+22),4+54)); -insert into t3 values (repeat(char(ascii('a')+23),3+54)); -insert into t3 values (repeat(char(ascii('a')+24),2+54)); -insert into t3 values (repeat(char(ascii('a')+25),1+54)); -select count(*) from t3; -count(*) -26 -select hex(a) from t3; -hex(a) -616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -drop table t3; -create table t4 (a binary(255) not null, primary key(a)) engine='InnoDB' -partition by list (ascii(a)) subpartition by key (a) subpartitions 4 ( -partition pa16 values in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), -partition pa32 values in (17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32), -partition pa64 values in (33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64), -partition pa128 values in (65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128), -partition pa256 values in (129,130,131,132,133,134,135,136,137,138,139,140 -,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256) -); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't4' -show create table t4; -Table Create Table -t4 CREATE TABLE `t4` ( - `a` binary(255) NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (ascii(a)) SUBPARTITION BY KEY (a) SUBPARTITIONS 4 (PARTITION pa16 VALUES IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16) ENGINE = MyISAM, PARTITION pa32 VALUES IN (17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32) ENGINE = MyISAM, PARTITION pa64 VALUES IN (33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64) ENGINE = MyISAM, PARTITION pa128 VALUES IN (65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128) ENGINE = MyISAM, PARTITION pa256 VALUES IN (129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256) ENGINE = MyISAM) */ -26 inserts; -insert into t4 values (repeat(char(ascii('a')+0),26+54)); -insert into t4 values (repeat(char(ascii('a')+1),25+54)); -insert into t4 values (repeat(char(ascii('a')+2),24+54)); -insert into t4 values (repeat(char(ascii('a')+3),23+54)); -insert into t4 values (repeat(char(ascii('a')+4),22+54)); -insert into t4 values (repeat(char(ascii('a')+5),21+54)); -insert into t4 values (repeat(char(ascii('a')+6),20+54)); -insert into t4 values (repeat(char(ascii('a')+7),19+54)); -insert into t4 values (repeat(char(ascii('a')+8),18+54)); -insert into t4 values (repeat(char(ascii('a')+9),17+54)); -insert into t4 values (repeat(char(ascii('a')+10),16+54)); -insert into t4 values (repeat(char(ascii('a')+11),15+54)); -insert into t4 values (repeat(char(ascii('a')+12),14+54)); -insert into t4 values (repeat(char(ascii('a')+13),13+54)); -insert into t4 values (repeat(char(ascii('a')+14),12+54)); -insert into t4 values (repeat(char(ascii('a')+15),11+54)); -insert into t4 values (repeat(char(ascii('a')+16),10+54)); -insert into t4 values (repeat(char(ascii('a')+17),9+54)); -insert into t4 values (repeat(char(ascii('a')+18),8+54)); -insert into t4 values (repeat(char(ascii('a')+19),7+54)); -insert into t4 values (repeat(char(ascii('a')+20),6+54)); -insert into t4 values (repeat(char(ascii('a')+21),5+54)); -insert into t4 values (repeat(char(ascii('a')+22),4+54)); -insert into t4 values (repeat(char(ascii('a')+23),3+54)); -insert into t4 values (repeat(char(ascii('a')+24),2+54)); -insert into t4 values (repeat(char(ascii('a')+25),1+54)); -select count(*) from t4; -count(*) -26 -select hex(a) from t4; -hex(a) -616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -drop table t4; +---- 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 = @@ -384,14 +228,12 @@ partition pa3 DATA DIRECTORY = partition pa4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=40 min_rows=2); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't1' show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` varchar(767) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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=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) */ insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64)); select * from t1; a @@ -412,14 +254,12 @@ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb drop table t1; create table t2 (a varchar(767) not null, primary key(a)) engine='InnoDB' partition by key (a) partitions 27; -Warnings: -Warning 1266 Using storage engine MyISAM for table 't2' show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(767) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26*26)); insert into t2 values (repeat(char(ascii('a')+1),25*25)); @@ -479,6 +319,7 @@ xxxxxxxxx yyyy z 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 = @@ -493,14 +334,12 @@ partition pa3 DATA DIRECTORY = partition pa4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=40 min_rows=2); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't1' show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` varbinary(767) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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=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) */ insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64)); select * from t1; a @@ -521,14 +360,12 @@ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb drop table t1; create table t2 (a varbinary(767) not null, primary key(a)) engine='InnoDB' partition by key (a) partitions 30; -Warnings: -Warning 1266 Using storage engine MyISAM for table 't2' show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varbinary(767) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 30 */ +) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 30 */ 26 inserts; insert into t2 values (repeat(char(ascii('a')+0),26*26)); insert into t2 values (repeat(char(ascii('a')+1),25*25)); @@ -588,6 +425,7 @@ xxxxxxxxx yyyy z 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 = @@ -602,14 +440,12 @@ partition pa3 DATA DIRECTORY = partition pa4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=40 min_rows=2); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't1' 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 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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=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) */ insert into t1 values ('A'),('D'),('L'),('G'); select * from t1; a @@ -641,14 +477,12 @@ create table t2 (a enum ( 'Y','Z' ) not null, primary key(a)) engine='InnoDB' partition by key (a) partitions 27; -Warnings: -Warning 1266 Using storage engine MyISAM for table 't2' show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `a` enum('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ 0 inserts; insert into t2 values (char(ascii('A')+26)); Warnings: @@ -721,60 +555,7 @@ X Y Z drop table t2; -create table t3 (a enum ( -'1','2','3','4','5','6','7','8','9','0', -'A','B','C','D','E','F','G','H','I','J','K','L', -'M','N','O','P','Q','R','S','T','U','V','W','X', -'Y','Z' -) not null, primary key(a)) engine='InnoDB' -partition by range (cast(a as unsigned)) subpartition by key (a) subpartitions 3 ( -partition pa9 values less than (10), -partition pa18 values less than (19), -partition pa27 values less than (28), -partition pa36 values less than (37) -); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't3' -show create table t3; -Table Create Table -t3 CREATE TABLE `t3` ( - `a` enum('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(a as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa9 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION pa18 VALUES LESS THAN (19) ENGINE = MyISAM, PARTITION pa27 VALUES LESS THAN (28) ENGINE = MyISAM, PARTITION pa36 VALUES LESS THAN (37) ENGINE = MyISAM) */ -0 inserts; -select count(*) from t3; -count(*) -0 -select * from t3; -a -drop table t3; -create table t4 (a enum ( -'1','2','3','4','5','6','7','8','9','0', -'A','B','C','D','E','F','G','H','I','J','K','L', -'M','N','O','P','Q','R','S','T','U','V','W','X', -'Y','Z' -) not null, primary key(a)) engine='InnoDB' -partition by list (cast(a as unsigned)) subpartition by key (a) subpartitions 3 ( -partition pa9 values in (1,2,3,4,5,6,7,8,9), -partition pa18 values in (10,11,12,13,14,15,16,17,18), -partition pa27 values in (19,20,21,22,23,24,25,26,27), -partition pa36 values in (28,29,30,31,32,33,34,35,36) -); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't4' -show create table t4; -Table Create Table -t4 CREATE TABLE `t4` ( - `a` enum('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(a as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa9 VALUES IN (1,2,3,4,5,6,7,8,9) ENGINE = MyISAM, PARTITION pa18 VALUES IN (10,11,12,13,14,15,16,17,18) ENGINE = MyISAM, PARTITION pa27 VALUES IN (19,20,21,22,23,24,25,26,27) ENGINE = MyISAM, PARTITION pa36 VALUES IN (28,29,30,31,32,33,34,35,36) ENGINE = MyISAM) */ -0 inserts; -select count(*) from t4; -count(*) -0 -select * from t4; -a -drop table t4; +---- 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 = @@ -789,14 +570,12 @@ partition pa3 DATA DIRECTORY = partition pa4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' max_rows=40 min_rows=2); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't1' 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 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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=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) */ insert into t1 values ('A,B'),('C,D'),('E,L'),('G,H,K'); select * from t1 order by a; a @@ -828,14 +607,12 @@ create table t2 (a set ( 'Y','Z' ) not null, primary key(a)) engine='InnoDB' partition by key (a) partitions 27; -Warnings: -Warning 1266 Using storage engine MyISAM for table 't2' show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `a` set('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ insert into t2 values ('A'),('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'),('K'),('L'),('M'),('N'),('O'),('P'),('Q'),('S'),('T'),('U'),('V'),('X'),('Y'),('Z'); insert into t2 values ('A,B'),('B,C'),('C,D'),('D,E'),('E,F'),('F,G'),('G,H'),('H,I'),('I,J'),('K,L'),('L,M'),('M,N'),('N,O'),('O,P'),('P,Q'),('Q,R'),('S,T'),('T,U'),('U,V'),('V,W'),('X,Y'),('Y,Z'),('Z,A'); insert into t2 values ('A,B,C'),('B,C,D'),('C,D,E'),('D,E,F'),('E,F,G'),('F,G,H'),('G,H,I'),('H,I,J'),('I,J,K'),('K,L,M'),('L,M,N'),('M,N,O'),('N,O,P'),('O,P,Q'),('P,Q,R'),('Q,R,S'),('S,T,U'),('T,U,V'),('U,V,W'),('V,W,X'),('X,Y,Z'),('Y,Z,A'),('Z,A,B'); @@ -947,56 +724,7 @@ Y,Z A,Y,Z X,Y,Z drop table t2; -create table t3 (a set ( -'1','2','3','4','5','6','7','8','9','0' -) not null, primary key(a)) engine='InnoDB' -partition by range (cast(a as unsigned)) subpartition by key (a) subpartitions 3 ( -partition pa9 values less than (10), -partition pa18 values less than (19), -partition pa27 values less than (28), -partition pa36 values less than (37), -partition pa64 values less than (65), -partition pa128 values less than (129), -partition pa256 values less than (257), -partition pa512 values less than (513), -partition pa768 values less than (769), -partition pa1024 values less than (1025) -); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't3' -show create table t3; -Table Create Table -t3 CREATE TABLE `t3` ( - `a` set('1','2','3','4','5','6','7','8','9','0') NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(a as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa9 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION pa18 VALUES LESS THAN (19) ENGINE = MyISAM, PARTITION pa27 VALUES LESS THAN (28) ENGINE = MyISAM, PARTITION pa36 VALUES LESS THAN (37) ENGINE = MyISAM, PARTITION pa64 VALUES LESS THAN (65) ENGINE = MyISAM, PARTITION pa128 VALUES LESS THAN (129) ENGINE = MyISAM, PARTITION pa256 VALUES LESS THAN (257) ENGINE = MyISAM, PARTITION pa512 VALUES LESS THAN (513) ENGINE = MyISAM, PARTITION pa768 VALUES LESS THAN (769) ENGINE = MyISAM, PARTITION pa1024 VALUES LESS THAN (1025) ENGINE = MyISAM) */ -select count(*) from t3; -count(*) -0 -select * from t3 order by a; -a -drop table t3; -create table t4 (a set ( -'1','2','3') not null, primary key(a)) engine='InnoDB' -partition by list (cast(a as unsigned)) subpartition by key (a) subpartitions 3 ( -partition pa9 values in (1,2,3,4,5,6,7,8,9), -partition pa18 values in (10,11,12,13,14,15,16,17,18), -partition pa27 values in (19,20,21,22,23,24,25,26,27) -); -Warnings: -Warning 1266 Using storage engine MyISAM for table 't4' -show create table t4; -Table Create Table -t4 CREATE TABLE `t4` ( - `a` set('1','2','3') NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(a as unsigned)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa9 VALUES IN (1,2,3,4,5,6,7,8,9) ENGINE = MyISAM, PARTITION pa18 VALUES IN (10,11,12,13,14,15,16,17,18) ENGINE = MyISAM, PARTITION pa27 VALUES IN (19,20,21,22,23,24,25,26,27) ENGINE = MyISAM) */ -select count(*) from t4; -count(*) -0 -select * from t4 order by a; -a -drop table t4; +---- 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 = @@ -1024,6 +752,7 @@ ERROR HY000: A BLOB field is not allowed in partition function create table t2 (a longblob not null, primary key(a(767))) engine='InnoDB' partition by key (a) partitions 30; 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 = diff --git a/mysql-test/suite/parts/r/partition_char_myisam.result b/mysql-test/suite/parts/r/partition_char_myisam.result index 514b2dba1bf..1009f52348d 100644 --- a/mysql-test/suite/parts/r/partition_char_myisam.result +++ b/mysql-test/suite/parts/r/partition_char_myisam.result @@ -1,5 +1,6 @@ -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) ( +---- 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, @@ -15,26 +16,764 @@ partition pa4 DATA DIRECTORY = show create table t1; Table Create 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 DEFAULT 'm', - PRIMARY KEY (`a`,`b`,`c`,`d`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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) */ -insert into t1 values -('1975-01-01', 'abcde', 'abcde','m'), -('1983-12-31', 'cdef', 'srtbvsr', 'w'), -('1980-10-14', 'fgbbd', 'dtzndtz', 'w'), -('2000-06-15', 'jukg','zikhuk','m'); -select * from t1; -a b c d -1975-01-01 abcde abcde m -1980-10-14 fgbbd dtzndtz w -1983-12-31 cdef srtbvsr w -2000-06-15 jukg zikhuk m -select * from t1 where a<19851231; -a b c d -1975-01-01 abcde abcde m -1980-10-14 fgbbd dtzndtz w -1983-12-31 cdef srtbvsr w + `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) */ +insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64)); +select * from t1; +a +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +b +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +select * from t1 where a='b'; +a +b +update t1 set a='bb' where a='b'; +delete from t1 where a='bb'; +select * from t1; +a +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +drop table t1; +create table t2 (a char(255) not null, primary key(a)) engine='MyISAM' +partition by key (a) partitions 27; +show create table t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` char(255) NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +26 inserts; +insert into t2 values (repeat(char(ascii('a')+0),26+54)); +insert into t2 values (repeat(char(ascii('a')+1),25+54)); +insert into t2 values (repeat(char(ascii('a')+2),24+54)); +insert into t2 values (repeat(char(ascii('a')+3),23+54)); +insert into t2 values (repeat(char(ascii('a')+4),22+54)); +insert into t2 values (repeat(char(ascii('a')+5),21+54)); +insert into t2 values (repeat(char(ascii('a')+6),20+54)); +insert into t2 values (repeat(char(ascii('a')+7),19+54)); +insert into t2 values (repeat(char(ascii('a')+8),18+54)); +insert into t2 values (repeat(char(ascii('a')+9),17+54)); +insert into t2 values (repeat(char(ascii('a')+10),16+54)); +insert into t2 values (repeat(char(ascii('a')+11),15+54)); +insert into t2 values (repeat(char(ascii('a')+12),14+54)); +insert into t2 values (repeat(char(ascii('a')+13),13+54)); +insert into t2 values (repeat(char(ascii('a')+14),12+54)); +insert into t2 values (repeat(char(ascii('a')+15),11+54)); +insert into t2 values (repeat(char(ascii('a')+16),10+54)); +insert into t2 values (repeat(char(ascii('a')+17),9+54)); +insert into t2 values (repeat(char(ascii('a')+18),8+54)); +insert into t2 values (repeat(char(ascii('a')+19),7+54)); +insert into t2 values (repeat(char(ascii('a')+20),6+54)); +insert into t2 values (repeat(char(ascii('a')+21),5+54)); +insert into t2 values (repeat(char(ascii('a')+22),4+54)); +insert into t2 values (repeat(char(ascii('a')+23),3+54)); +insert into t2 values (repeat(char(ascii('a')+24),2+54)); +insert into t2 values (repeat(char(ascii('a')+25),1+54)); +select count(*) from t2; +count(*) +26 +select * from t2; +a +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg +hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj +kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk +lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll +mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm +nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo +ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp +qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq +rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr +ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss +ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt +uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu +vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww +xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +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); +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) */ +insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64)); +select hex(a) from t1; +hex(a) +616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161 +620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +select a from t1 where substr(a,1,2)='b\0'; +a +b +update t1 set a='cc' where substr(a,1,2)= 'b\0'; +select a from t1 where substr(a,1,1)='c'; +a +cc +delete from t1 where substr(a,1,2)='cc'; +select hex(a) from t1; +hex(a) +616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161 +626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +drop table t1; +create table t2 (a binary(255) not null, primary key(a)) engine='MyISAM' +partition by key (a) partitions 27; +show create table t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` binary(255) NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +26 inserts; +insert into t2 values (repeat(char(ascii('a')+0),26+54)); +insert into t2 values (repeat(char(ascii('a')+1),25+54)); +insert into t2 values (repeat(char(ascii('a')+2),24+54)); +insert into t2 values (repeat(char(ascii('a')+3),23+54)); +insert into t2 values (repeat(char(ascii('a')+4),22+54)); +insert into t2 values (repeat(char(ascii('a')+5),21+54)); +insert into t2 values (repeat(char(ascii('a')+6),20+54)); +insert into t2 values (repeat(char(ascii('a')+7),19+54)); +insert into t2 values (repeat(char(ascii('a')+8),18+54)); +insert into t2 values (repeat(char(ascii('a')+9),17+54)); +insert into t2 values (repeat(char(ascii('a')+10),16+54)); +insert into t2 values (repeat(char(ascii('a')+11),15+54)); +insert into t2 values (repeat(char(ascii('a')+12),14+54)); +insert into t2 values (repeat(char(ascii('a')+13),13+54)); +insert into t2 values (repeat(char(ascii('a')+14),12+54)); +insert into t2 values (repeat(char(ascii('a')+15),11+54)); +insert into t2 values (repeat(char(ascii('a')+16),10+54)); +insert into t2 values (repeat(char(ascii('a')+17),9+54)); +insert into t2 values (repeat(char(ascii('a')+18),8+54)); +insert into t2 values (repeat(char(ascii('a')+19),7+54)); +insert into t2 values (repeat(char(ascii('a')+20),6+54)); +insert into t2 values (repeat(char(ascii('a')+21),5+54)); +insert into t2 values (repeat(char(ascii('a')+22),4+54)); +insert into t2 values (repeat(char(ascii('a')+23),3+54)); +insert into t2 values (repeat(char(ascii('a')+24),2+54)); +insert into t2 values (repeat(char(ascii('a')+25),1+54)); +select count(*) from t2; +count(*) +26 +select hex(a) from t2; +hex(a) +616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262620000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969696969000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474747474740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575757575000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +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); +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) */ +insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64)); +select * from t1; +a +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +b +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +select * from t1 where a='b'; +a +b +update t1 set a='bb' where a='b'; +delete from t1 where a='bb'; +select * from t1; +a +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +drop table t1; +create table t2 (a varchar(767) not null, primary key(a)) engine='MyISAM' +partition by key (a) partitions 27; +show create table t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` varchar(767) NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +26 inserts; +insert into t2 values (repeat(char(ascii('a')+0),26*26)); +insert into t2 values (repeat(char(ascii('a')+1),25*25)); +insert into t2 values (repeat(char(ascii('a')+2),24*24)); +insert into t2 values (repeat(char(ascii('a')+3),23*23)); +insert into t2 values (repeat(char(ascii('a')+4),22*22)); +insert into t2 values (repeat(char(ascii('a')+5),21*21)); +insert into t2 values (repeat(char(ascii('a')+6),20*20)); +insert into t2 values (repeat(char(ascii('a')+7),19*19)); +insert into t2 values (repeat(char(ascii('a')+8),18*18)); +insert into t2 values (repeat(char(ascii('a')+9),17*17)); +insert into t2 values (repeat(char(ascii('a')+10),16*16)); +insert into t2 values (repeat(char(ascii('a')+11),15*15)); +insert into t2 values (repeat(char(ascii('a')+12),14*14)); +insert into t2 values (repeat(char(ascii('a')+13),13*13)); +insert into t2 values (repeat(char(ascii('a')+14),12*12)); +insert into t2 values (repeat(char(ascii('a')+15),11*11)); +insert into t2 values (repeat(char(ascii('a')+16),10*10)); +insert into t2 values (repeat(char(ascii('a')+17),9*9)); +insert into t2 values (repeat(char(ascii('a')+18),8*8)); +insert into t2 values (repeat(char(ascii('a')+19),7*7)); +insert into t2 values (repeat(char(ascii('a')+20),6*6)); +insert into t2 values (repeat(char(ascii('a')+21),5*5)); +insert into t2 values (repeat(char(ascii('a')+22),4*4)); +insert into t2 values (repeat(char(ascii('a')+23),3*3)); +insert into t2 values (repeat(char(ascii('a')+24),2*2)); +insert into t2 values (repeat(char(ascii('a')+25),1*1)); +select count(*) from t2; +count(*) +26 +select * from t2; +a +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg +hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj +kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk +lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll +mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm +nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo +ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp +qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq +rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr +ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss +ttttttttttttttttttttttttttttttttttttttttttttttttt +uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu +vvvvvvvvvvvvvvvvvvvvvvvvv +wwwwwwwwwwwwwwww +xxxxxxxxx +yyyy +z +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); +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) */ +insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64)); +select * from t1; +a +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +b +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +select * from t1 where a='b'; +a +b +update t1 set a='bb' where a='b'; +delete from t1 where a='bb'; +select * from t1; +a +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb drop table t1; +create table t2 (a varbinary(767) not null, primary key(a)) engine='MyISAM' +partition by key (a) partitions 30; +show create table t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` varbinary(767) NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 30 */ +26 inserts; +insert into t2 values (repeat(char(ascii('a')+0),26*26)); +insert into t2 values (repeat(char(ascii('a')+1),25*25)); +insert into t2 values (repeat(char(ascii('a')+2),24*24)); +insert into t2 values (repeat(char(ascii('a')+3),23*23)); +insert into t2 values (repeat(char(ascii('a')+4),22*22)); +insert into t2 values (repeat(char(ascii('a')+5),21*21)); +insert into t2 values (repeat(char(ascii('a')+6),20*20)); +insert into t2 values (repeat(char(ascii('a')+7),19*19)); +insert into t2 values (repeat(char(ascii('a')+8),18*18)); +insert into t2 values (repeat(char(ascii('a')+9),17*17)); +insert into t2 values (repeat(char(ascii('a')+10),16*16)); +insert into t2 values (repeat(char(ascii('a')+11),15*15)); +insert into t2 values (repeat(char(ascii('a')+12),14*14)); +insert into t2 values (repeat(char(ascii('a')+13),13*13)); +insert into t2 values (repeat(char(ascii('a')+14),12*12)); +insert into t2 values (repeat(char(ascii('a')+15),11*11)); +insert into t2 values (repeat(char(ascii('a')+16),10*10)); +insert into t2 values (repeat(char(ascii('a')+17),9*9)); +insert into t2 values (repeat(char(ascii('a')+18),8*8)); +insert into t2 values (repeat(char(ascii('a')+19),7*7)); +insert into t2 values (repeat(char(ascii('a')+20),6*6)); +insert into t2 values (repeat(char(ascii('a')+21),5*5)); +insert into t2 values (repeat(char(ascii('a')+22),4*4)); +insert into t2 values (repeat(char(ascii('a')+23),3*3)); +insert into t2 values (repeat(char(ascii('a')+24),2*2)); +insert into t2 values (repeat(char(ascii('a')+25),1*1)); +select count(*) from t2; +count(*) +26 +select * from t2; +a +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd +eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg +hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii +jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj +kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk +lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll +mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm +nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn +oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo +ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp +qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq +rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr +ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss +ttttttttttttttttttttttttttttttttttttttttttttttttt +uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu +vvvvvvvvvvvvvvvvvvvvvvvvv +wwwwwwwwwwwwwwww +xxxxxxxxx +yyyy +z +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); +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) */ +insert into t1 values ('A'),('D'),('L'),('G'); +select * from t1; +a +A +D +G +L +select * from t1 where a='A'; +a +A +update t1 set a='E' where a='L'; +select * from t1; +a +A +D +E +G +delete from t1 where a='E'; +select * from t1; +a +A +D +G +drop table t1; +create table t2 (a enum ( +'1','2','3','4','5','6','7','8','9','0', +'A','B','C','D','E','F','G','H','I','J','K','L', +'M','N','O','P','Q','R','S','T','U','V','W','X', +'Y','Z' +) not null, primary key(a)) engine='MyISAM' +partition by key (a) partitions 27; +show create table t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` enum('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +0 inserts; +insert into t2 values (char(ascii('A')+26)); +Warnings: +Warning 1265 Data truncated for column 'a' at row 1 +insert into t2 values (char(ascii('A')+25)); +insert into t2 values (char(ascii('A')+24)); +insert into t2 values (char(ascii('A')+23)); +insert into t2 values (char(ascii('A')+22)); +insert into t2 values (char(ascii('A')+21)); +insert into t2 values (char(ascii('A')+20)); +insert into t2 values (char(ascii('A')+19)); +insert into t2 values (char(ascii('A')+18)); +insert into t2 values (char(ascii('A')+17)); +insert into t2 values (char(ascii('A')+16)); +insert into t2 values (char(ascii('A')+15)); +insert into t2 values (char(ascii('A')+14)); +insert into t2 values (char(ascii('A')+13)); +insert into t2 values (char(ascii('A')+12)); +insert into t2 values (char(ascii('A')+11)); +insert into t2 values (char(ascii('A')+10)); +insert into t2 values (char(ascii('A')+9)); +insert into t2 values (char(ascii('A')+8)); +insert into t2 values (char(ascii('A')+7)); +insert into t2 values (char(ascii('A')+6)); +insert into t2 values (char(ascii('A')+5)); +insert into t2 values (char(ascii('A')+4)); +insert into t2 values (char(ascii('A')+3)); +insert into t2 values (char(ascii('A')+2)); +insert into t2 values (char(ascii('A')+1)); +insert into t2 values ('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('0'); +select count(*) from t2; +count(*) +36 +select * from t2; +a + +1 +2 +3 +4 +5 +6 +7 +8 +9 +0 +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +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); +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) */ +insert into t1 values ('A,B'),('C,D'),('E,L'),('G,H,K'); +select * from t1 order by a; +a +A,B +C,D +G,H,K +E,L +select * from t1 where a='A,B'; +a +A,B +update t1 set a='A,B,C' where a='E,L'; +select * from t1 order by a; +a +A,B +A,B,C +C,D +G,H,K +delete from t1 where a='A,B'; +select * from t1 order by a; +a +A,B,C +C,D +G,H,K +drop table t1; +create table t2 (a set ( +'1','2','3','4','5','6','7','8','9','0', +'A','B','C','D','E','F','G','H','I','J','K','L', +'M','N','O','P','Q','R','S','T','U','V','W','X', +'Y','Z' +) not null, primary key(a)) engine='MyISAM' +partition by key (a) partitions 27; +show create table t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` set('1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 27 */ +insert into t2 values ('A'),('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'),('K'),('L'),('M'),('N'),('O'),('P'),('Q'),('S'),('T'),('U'),('V'),('X'),('Y'),('Z'); +insert into t2 values ('A,B'),('B,C'),('C,D'),('D,E'),('E,F'),('F,G'),('G,H'),('H,I'),('I,J'),('K,L'),('L,M'),('M,N'),('N,O'),('O,P'),('P,Q'),('Q,R'),('S,T'),('T,U'),('U,V'),('V,W'),('X,Y'),('Y,Z'),('Z,A'); +insert into t2 values ('A,B,C'),('B,C,D'),('C,D,E'),('D,E,F'),('E,F,G'),('F,G,H'),('G,H,I'),('H,I,J'),('I,J,K'),('K,L,M'),('L,M,N'),('M,N,O'),('N,O,P'),('O,P,Q'),('P,Q,R'),('Q,R,S'),('S,T,U'),('T,U,V'),('U,V,W'),('V,W,X'),('X,Y,Z'),('Y,Z,A'),('Z,A,B'); +insert into t2 values ('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('0'); +insert into t2 values ('1,2'),('2,3'),('3,4'),('4,5'),('5,6'),('6,7'),('7,8'),('8,9'),('9,0'),('0,1'); +insert into t2 values ('1,2,3'),('2,3,4'),('3,4,5'),('4,5,6'),('5,6,7'),('6,7,8'),('7,8,9'),('8,9,0'),('9,0,1'),('0,1,2'); +select count(*) from t2; +count(*) +99 +select * from t2 order by a; +a +1 +2 +1,2 +3 +2,3 +1,2,3 +4 +3,4 +2,3,4 +5 +4,5 +3,4,5 +6 +5,6 +4,5,6 +7 +6,7 +5,6,7 +8 +7,8 +6,7,8 +9 +8,9 +7,8,9 +0 +1,0 +1,2,0 +9,0 +1,9,0 +8,9,0 +A +B +A,B +C +B,C +A,B,C +D +C,D +B,C,D +E +D,E +C,D,E +F +E,F +D,E,F +G +F,G +E,F,G +H +G,H +F,G,H +I +H,I +G,H,I +I,J +H,I,J +K +I,J,K +L +K,L +M +L,M +K,L,M +N +M,N +L,M,N +O +N,O +M,N,O +P +O,P +N,O,P +Q +P,Q +O,P,Q +Q,R +P,Q,R +S +Q,R,S +T +S,T +U +T,U +S,T,U +V +U,V +T,U,V +V,W +U,V,W +X +V,W,X +Y +X,Y +Z +A,Z +A,B,Z +Y,Z +A,Y,Z +X,Y,Z +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); +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; +ERROR HY000: A BLOB field is not allowed in partition function +create table t2 (a tinyblob not null, primary key(a(767))) engine='MyISAM' +partition by key (a) partitions 30; +ERROR HY000: A BLOB field is not allowed in partition function +create table t2 (a mediumblob not null, primary key(a(767))) engine='MyISAM' +partition by key (a) partitions 30; +ERROR HY000: A BLOB field is not allowed in partition function +create table t2 (a longblob not null, primary key(a(767))) engine='MyISAM' +partition by key (a) partitions 30; +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); +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; +ERROR HY000: A BLOB field is not allowed in partition function +create table t2 (a mediumtext not null, primary key(a(767))) engine='MyISAM' +partition by key (a) partitions 30; +ERROR HY000: A BLOB field is not allowed in partition function +create table t2 (a longtext not null, primary key(a(767))) engine='MyISAM' +partition by key (a) partitions 30; +ERROR HY000: A BLOB field is not allowed in partition function diff --git a/mysql-test/suite/parts/r/partition_datetime_myisam.result b/mysql-test/suite/parts/r/partition_datetime_myisam.result index 1ef281f2766..7e05d368cf8 100644 --- a/mysql-test/suite/parts/r/partition_datetime_myisam.result +++ b/mysql-test/suite/parts/r/partition_datetime_myisam.result @@ -17,7 +17,7 @@ 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 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ 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 @@ -298,7 +298,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` date NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15'); select * from t1; a @@ -625,7 +625,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` time NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59'); select * from t1; a @@ -1090,7 +1090,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` datetime NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ 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 @@ -1367,7 +1367,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` year(4) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values ('1975'), (2020), ('1980'), ('2000'); 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 464ac4ddaf5..4d06f4d7b38 100644 --- a/mysql-test/suite/parts/r/partition_decimal_myisam.result +++ b/mysql-test/suite/parts/r/partition_decimal_myisam.result @@ -17,7 +17,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` decimal(10,4) NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ 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 be95f5baae5..04a5a492269 100644 --- a/mysql-test/suite/parts/r/partition_engine_innodb.result +++ b/mysql-test/suite/parts/r/partition_engine_innodb.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'InnoDB'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -62,7 +57,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -497,7 +492,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 2 Assignment of storage engine just after partition or subpartition @@ -516,7 +511,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -951,7 +946,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -971,7 +966,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1404,7 +1399,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 3 Some but not all named partitions or subpartitions get a storage @@ -1423,7 +1418,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1858,7 +1853,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1873,7 +1868,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2308,7 +2303,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2328,7 +2323,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2761,7 +2756,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2781,7 +2776,7 @@ 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; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3214,7 +3209,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 4 Storage engine assignment after partition name + after name of @@ -3238,7 +3233,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3671,7 +3666,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3691,7 +3686,7 @@ 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; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4124,7 +4119,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 5 Precedence of storage engine assignments (if there is any) @@ -4144,7 +4139,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4579,7 +4574,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4599,7 +4594,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5032,7 +5027,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 6.2 Storage engine assignment after partition name + after # subpartition name @@ -5054,7 +5049,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5487,7 +5482,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 6 Session default engine differs from engine used within create table @@ -5503,7 +5498,7 @@ f_charbig VARCHAR(1000) PARTITION BY HASH(f_int1) ( PARTITION part1 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5938,7 +5933,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -5954,7 +5949,7 @@ SUBPARTITION BY HASH(f_int1) SUBPARTITION subpart12 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6387,7 +6382,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; SET SESSION storage_engine='InnoDB'; DROP VIEW IF EXISTS v1; diff --git a/mysql-test/suite/parts/r/partition_engine_myisam.result b/mysql-test/suite/parts/r/partition_engine_myisam.result index a61ec2e5cef..f81becc6eea 100644 --- a/mysql-test/suite/parts/r/partition_engine_myisam.result +++ b/mysql-test/suite/parts/r/partition_engine_myisam.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'MyISAM'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -62,7 +57,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -507,7 +502,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 2 Assignment of storage engine just after partition or subpartition @@ -526,7 +521,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -971,7 +966,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -991,7 +986,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1438,7 +1433,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 3 Some but not all named partitions or subpartitions get a storage @@ -1457,7 +1452,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -1902,7 +1897,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -1917,7 +1912,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2362,7 +2357,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2382,7 +2377,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -2829,7 +2824,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -2849,7 +2844,7 @@ 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; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3296,7 +3291,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 4 Storage engine assignment after partition name + after name of @@ -3320,7 +3315,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -3767,7 +3762,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -3787,7 +3782,7 @@ 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; -# Start usability test (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4234,7 +4229,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 5 Precedence of storage engine assignments (if there is any) @@ -4254,7 +4249,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -4699,7 +4694,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -4719,7 +4714,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5166,7 +5161,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; # 6.2 Storage engine assignment after partition name + after # subpartition name @@ -5188,7 +5183,7 @@ 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -5635,7 +5630,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; #------------------------------------------------------------------------ # 6 Session default engine differs from engine used within create table @@ -5651,7 +5646,7 @@ f_charbig VARCHAR(1000) PARTITION BY HASH(f_int1) ( PARTITION part1 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6094,7 +6089,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; CREATE TABLE t1 ( f_int1 INTEGER, @@ -6110,7 +6105,7 @@ SUBPARTITION BY HASH(f_int1) SUBPARTITION subpart12 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 (include/partition_check.inc) +# Start usability test (inc/partition_check.inc) create_command SHOW CREATE TABLE t1; Table Create Table @@ -6553,7 +6548,7 @@ TRUNCATE t1; # check TRUNCATE success: 1 # check layout success: 1 -# End usability test (include/partition_check.inc) +# End usability test (inc/partition_check.inc) DROP TABLE t1; SET SESSION storage_engine='MyISAM'; DROP VIEW IF EXISTS v1; diff --git a/mysql-test/suite/parts/r/partition_float_innodb.result b/mysql-test/suite/parts/r/partition_float_innodb.result index bc30987b33f..c203fabfd87 100644 --- a/mysql-test/suite/parts/r/partition_float_innodb.result +++ b/mysql-test/suite/parts/r/partition_float_innodb.result @@ -89,152 +89,6 @@ select count(*) from t2; count(*) 3072 drop table t2; -create table t3 (a float not null, primary key(a)) engine='InnoDB' -partition by range (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 ( -partition pa1 values less than (3), -partition pa3 values less than (6), -partition pa10 values less than (10) -); -show create table t3; -Table Create Table -t3 CREATE TABLE `t3` ( - `a` float NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa1 VALUES LESS THAN (3) ENGINE = InnoDB, PARTITION pa3 VALUES LESS THAN (6) ENGINE = InnoDB, PARTITION pa10 VALUES LESS THAN (10) ENGINE = InnoDB) */ -9*3 inserts; -insert into t3 values (9); -insert into t3 values (9+0.33); -insert into t3 values (9+0.75); -insert into t3 values (8); -insert into t3 values (8+0.33); -insert into t3 values (8+0.75); -insert into t3 values (7); -insert into t3 values (7+0.33); -insert into t3 values (7+0.75); -insert into t3 values (6); -insert into t3 values (6+0.33); -insert into t3 values (6+0.75); -insert into t3 values (5); -insert into t3 values (5+0.33); -insert into t3 values (5+0.75); -insert into t3 values (4); -insert into t3 values (4+0.33); -insert into t3 values (4+0.75); -insert into t3 values (3); -insert into t3 values (3+0.33); -insert into t3 values (3+0.75); -insert into t3 values (2); -insert into t3 values (2+0.33); -insert into t3 values (2+0.75); -insert into t3 values (1); -insert into t3 values (1+0.33); -insert into t3 values (1+0.75); -select count(*) from t3; -count(*) -27 -select * from t3; -a -1 -1.33 -1.75 -2 -2.33 -2.75 -3 -3.33 -3.75 -4 -4.33 -4.75 -5 -5.33 -5.75 -6 -6.33 -6.75 -7 -7.33 -7.75 -8 -8.33 -8.75 -9 -9.33 -9.75 -drop table t3; -create table t4 (a float not null, primary key(a)) engine='InnoDB' -partition by list (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 ( -partition pa1 values in (1,2,3), -partition pa3 values in (4,5,6), -partition pa10 values in (7,8,9,10) -); -show create table t4; -Table Create Table -t4 CREATE TABLE `t4` ( - `a` float NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa1 VALUES IN (1,2,3) ENGINE = InnoDB, PARTITION pa3 VALUES IN (4,5,6) ENGINE = InnoDB, PARTITION pa10 VALUES IN (7,8,9,10) ENGINE = InnoDB) */ -9*3 inserts; -insert into t4 values (9); -insert into t4 values (9+0.33); -insert into t4 values (9+0.75); -insert into t4 values (8); -insert into t4 values (8+0.33); -insert into t4 values (8+0.75); -insert into t4 values (7); -insert into t4 values (7+0.33); -insert into t4 values (7+0.75); -insert into t4 values (6); -insert into t4 values (6+0.33); -insert into t4 values (6+0.75); -insert into t4 values (5); -insert into t4 values (5+0.33); -insert into t4 values (5+0.75); -insert into t4 values (4); -insert into t4 values (4+0.33); -insert into t4 values (4+0.75); -insert into t4 values (3); -insert into t4 values (3+0.33); -insert into t4 values (3+0.75); -insert into t4 values (2); -insert into t4 values (2+0.33); -insert into t4 values (2+0.75); -insert into t4 values (1); -insert into t4 values (1+0.33); -insert into t4 values (1+0.75); -select count(*) from t4; -count(*) -27 -select * from t4; -a -1 -1.33 -1.75 -2 -2.33 -2.75 -3 -3.33 -3.75 -4 -4.33 -4.75 -5 -5.33 -5.75 -6 -6.33 -6.75 -7 -7.33 -7.75 -8 -8.33 -8.75 -9 -9.33 -9.75 -drop table t4; create table t1 (a double not null, primary key(a)) engine='InnoDB' partition by key (a) ( partition pa1 DATA DIRECTORY = @@ -318,149 +172,3 @@ select count(*) from t2; count(*) 3072 drop table t2; -create table t3 (a double not null, primary key(a)) engine='InnoDB' -partition by range (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 ( -partition pa1 values less than (3), -partition pa3 values less than (6), -partition pa10 values less than (10) -); -show create table t3; -Table Create Table -t3 CREATE TABLE `t3` ( - `a` double NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa1 VALUES LESS THAN (3) ENGINE = InnoDB, PARTITION pa3 VALUES LESS THAN (6) ENGINE = InnoDB, PARTITION pa10 VALUES LESS THAN (10) ENGINE = InnoDB) */ -9*3 inserts; -insert into t3 values (9); -insert into t3 values (9+0.33); -insert into t3 values (9+0.75); -insert into t3 values (8); -insert into t3 values (8+0.33); -insert into t3 values (8+0.75); -insert into t3 values (7); -insert into t3 values (7+0.33); -insert into t3 values (7+0.75); -insert into t3 values (6); -insert into t3 values (6+0.33); -insert into t3 values (6+0.75); -insert into t3 values (5); -insert into t3 values (5+0.33); -insert into t3 values (5+0.75); -insert into t3 values (4); -insert into t3 values (4+0.33); -insert into t3 values (4+0.75); -insert into t3 values (3); -insert into t3 values (3+0.33); -insert into t3 values (3+0.75); -insert into t3 values (2); -insert into t3 values (2+0.33); -insert into t3 values (2+0.75); -insert into t3 values (1); -insert into t3 values (1+0.33); -insert into t3 values (1+0.75); -select count(*) from t3; -count(*) -27 -select * from t3; -a -1 -1.33 -1.75 -2 -2.33 -2.75 -3 -3.33 -3.75 -4 -4.33 -4.75 -5 -5.33 -5.75 -6 -6.33 -6.75 -7 -7.33 -7.75 -8 -8.33 -8.75 -9 -9.33 -9.75 -drop table t3; -create table t4 (a double not null, primary key(a)) engine='InnoDB' -partition by list (cast(floor(a) as signed)) subpartition by key (a) subpartitions 3 ( -partition pa1 values in (1,2,3), -partition pa3 values in (4,5,6), -partition pa10 values in (7,8,9,10) -); -show create table t4; -Table Create Table -t4 CREATE TABLE `t4` ( - `a` double NOT NULL, - PRIMARY KEY (`a`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (cast(floor(a) as signed)) SUBPARTITION BY KEY (a) SUBPARTITIONS 3 (PARTITION pa1 VALUES IN (1,2,3) ENGINE = InnoDB, PARTITION pa3 VALUES IN (4,5,6) ENGINE = InnoDB, PARTITION pa10 VALUES IN (7,8,9,10) ENGINE = InnoDB) */ -9*3 inserts; -insert into t4 values (9); -insert into t4 values (9+0.33); -insert into t4 values (9+0.75); -insert into t4 values (8); -insert into t4 values (8+0.33); -insert into t4 values (8+0.75); -insert into t4 values (7); -insert into t4 values (7+0.33); -insert into t4 values (7+0.75); -insert into t4 values (6); -insert into t4 values (6+0.33); -insert into t4 values (6+0.75); -insert into t4 values (5); -insert into t4 values (5+0.33); -insert into t4 values (5+0.75); -insert into t4 values (4); -insert into t4 values (4+0.33); -insert into t4 values (4+0.75); -insert into t4 values (3); -insert into t4 values (3+0.33); -insert into t4 values (3+0.75); -insert into t4 values (2); -insert into t4 values (2+0.33); -insert into t4 values (2+0.75); -insert into t4 values (1); -insert into t4 values (1+0.33); -insert into t4 values (1+0.75); -select count(*) from t4; -count(*) -27 -select * from t4; -a -1 -1.33 -1.75 -2 -2.33 -2.75 -3 -3.33 -3.75 -4 -4.33 -4.75 -5 -5.33 -5.75 -6 -6.33 -6.75 -7 -7.33 -7.75 -8 -8.33 -8.75 -9 -9.33 -9.75 -drop table t4; diff --git a/mysql-test/suite/parts/r/partition_float_myisam.result b/mysql-test/suite/parts/r/partition_float_myisam.result index aba62b8ba70..13881548473 100644 --- a/mysql-test/suite/parts/r/partition_float_myisam.result +++ b/mysql-test/suite/parts/r/partition_float_myisam.result @@ -17,7 +17,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` float NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5); select * from t1; a @@ -108,7 +108,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` double NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ 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_myisam.result b/mysql-test/suite/parts/r/partition_int_myisam.result index d00f8e5f772..7f16cdb207a 100644 --- a/mysql-test/suite/parts/r/partition_int_myisam.result +++ b/mysql-test/suite/parts/r/partition_int_myisam.result @@ -17,7 +17,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values (255), (254), (253), (252), (1), (2), (128); select * from t1; a @@ -125,7 +125,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` smallint(5) unsigned NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256); select * from t1; a @@ -233,7 +233,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` int(10) unsigned NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535); select * from t1; a @@ -341,7 +341,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` mediumint(8) unsigned NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535); select * from t1; a @@ -449,7 +449,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `a` bigint(20) unsigned NOT NULL, PRIMARY KEY (`a`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ 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_myisam.result b/mysql-test/suite/parts/r/partition_special_myisam.result index f3249f49778..85e6d5445fd 100644 --- a/mysql-test/suite/parts/r/partition_special_myisam.result +++ b/mysql-test/suite/parts/r/partition_special_myisam.result @@ -20,7 +20,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 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ insert into t1 values ('1975-01-01', 'abcde', 'abcde','m'), ('1983-12-31', 'cdef', 'srtbvsr', 'w'), @@ -65,7 +65,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 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ 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'), @@ -118,7 +118,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 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ 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'), @@ -202,7 +202,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 DATA DIRECTORY='/tmp/' INDEX DIRECTORY='/tmp/' /*!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 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) */ 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_syntax_innodb.result b/mysql-test/suite/parts/r/partition_syntax_innodb.result index 402ab2f524f..a26d2ec65b9 100644 --- a/mysql-test/suite/parts/r/partition_syntax_innodb.result +++ b/mysql-test/suite/parts/r/partition_syntax_innodb.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'InnoDB'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -1058,6 +1053,29 @@ f_char1 CHAR(20), f_char2 CHAR(20), f_charbig VARCHAR(1000) ) +PARTITION BY HASH(f_int1) PARTITIONS 1.6; +ERROR 42000: Only integers allowed as number here near '1.6' at line 8 +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) +SUBPARTITIONS 1.6 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '1.6 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (21' at line 9 +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 999999999999999999999999999999.999999999999999999999999999999; ERROR 42000: Only integers allowed as number here near '999999999999999999999999999999.999999999999999999999999999999' at line 8 CREATE TABLE t1 ( @@ -1127,6 +1145,29 @@ f_char1 CHAR(20), f_char2 CHAR(20), f_charbig VARCHAR(1000) ) +PARTITION BY HASH(f_int1) PARTITIONS 0.2E+1; +ERROR 42000: Only integers allowed as number here near '0.2E+1' at line 8 +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) +SUBPARTITIONS 0.2E+1 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '0.2E+1 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN ' at line 9 +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.0E+0; 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 '-2.0E+0' at line 8 CREATE TABLE t1 ( @@ -1150,6 +1191,29 @@ f_char1 CHAR(20), f_char2 CHAR(20), f_charbig VARCHAR(1000) ) +PARTITION BY HASH(f_int1) PARTITIONS 0.16E+1; +ERROR 42000: Only integers allowed as number here near '0.16E+1' at line 8 +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) +SUBPARTITIONS 0.16E+1 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '0.16E+1 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN' at line 9 +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 0.0E+300; ERROR 42000: Only integers allowed as number here near '0.0E+300' at line 8 CREATE TABLE t1 ( @@ -1166,6 +1230,52 @@ PARTITION part2 VALUES LESS THAN (2147483646)); ERROR 42000: Only integers allowed as number here near '0.0E+300 (PARTITION part1 VALUES LESS THAN (10), PARTITION part2 VALUES LESS THA' at line 9 +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 1E+300; +ERROR 42000: Only integers allowed as number here near '1E+300' at line 8 +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) +SUBPARTITIONS 1E+300 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '1E+300 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN ' at line 9 +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 1E-300; +ERROR 42000: Only integers allowed as number here near '1E-300' at line 8 +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) +SUBPARTITIONS 1E-300 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '1E-300 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN ' at line 9 # 4.2.4 partition/subpartition numbers STRING notation CREATE TABLE t1 ( f_int1 INTEGER, diff --git a/mysql-test/suite/parts/r/partition_syntax_myisam.result b/mysql-test/suite/parts/r/partition_syntax_myisam.result index ceac1b4f1b9..93cb075ce2f 100644 --- a/mysql-test/suite/parts/r/partition_syntax_myisam.result +++ b/mysql-test/suite/parts/r/partition_syntax_myisam.result @@ -2,11 +2,6 @@ SET @max_row = 20; SET @@session.storage_engine = 'MyISAM'; #------------------------------------------------------------------------ -# There are several testcases disabled because of the open bugs -# #15890 -#------------------------------------------------------------------------ - -#------------------------------------------------------------------------ # 0. Setting of auxiliary variables + Creation of an auxiliary tables # needed in many testcases #------------------------------------------------------------------------ @@ -1140,6 +1135,29 @@ f_char1 CHAR(20), f_char2 CHAR(20), f_charbig VARCHAR(1000) ) +PARTITION BY HASH(f_int1) PARTITIONS 1.6; +ERROR 42000: Only integers allowed as number here near '1.6' at line 8 +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) +SUBPARTITIONS 1.6 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '1.6 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (21' at line 9 +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 999999999999999999999999999999.999999999999999999999999999999; ERROR 42000: Only integers allowed as number here near '999999999999999999999999999999.999999999999999999999999999999' at line 8 CREATE TABLE t1 ( @@ -1209,6 +1227,29 @@ f_char1 CHAR(20), f_char2 CHAR(20), f_charbig VARCHAR(1000) ) +PARTITION BY HASH(f_int1) PARTITIONS 0.2E+1; +ERROR 42000: Only integers allowed as number here near '0.2E+1' at line 8 +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) +SUBPARTITIONS 0.2E+1 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '0.2E+1 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN ' at line 9 +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.0E+0; 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 '-2.0E+0' at line 8 CREATE TABLE t1 ( @@ -1232,6 +1273,29 @@ f_char1 CHAR(20), f_char2 CHAR(20), f_charbig VARCHAR(1000) ) +PARTITION BY HASH(f_int1) PARTITIONS 0.16E+1; +ERROR 42000: Only integers allowed as number here near '0.16E+1' at line 8 +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) +SUBPARTITIONS 0.16E+1 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '0.16E+1 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN' at line 9 +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 0.0E+300; ERROR 42000: Only integers allowed as number here near '0.0E+300' at line 8 CREATE TABLE t1 ( @@ -1248,6 +1312,52 @@ PARTITION part2 VALUES LESS THAN (2147483646)); ERROR 42000: Only integers allowed as number here near '0.0E+300 (PARTITION part1 VALUES LESS THAN (10), PARTITION part2 VALUES LESS THA' at line 9 +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 1E+300; +ERROR 42000: Only integers allowed as number here near '1E+300' at line 8 +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) +SUBPARTITIONS 1E+300 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '1E+300 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN ' at line 9 +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 1E-300; +ERROR 42000: Only integers allowed as number here near '1E-300' at line 8 +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) +SUBPARTITIONS 1E-300 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN (2147483646)); +ERROR 42000: Only integers allowed as number here near '1E-300 +(PARTITION part1 VALUES LESS THAN (10), +PARTITION part2 VALUES LESS THAN ' at line 9 # 4.2.4 partition/subpartition numbers STRING notation CREATE TABLE t1 ( f_int1 INTEGER, diff --git a/mysql-test/suite/parts/t/disabled.def b/mysql-test/suite/parts/t/disabled.def index 1b70519b72c..85b31bb0598 100644 --- a/mysql-test/suite/parts/t/disabled.def +++ b/mysql-test/suite/parts/t/disabled.def @@ -12,9 +12,7 @@ partition_value_ndb : cannot create t1 partition_basic_ndb : cannot create t1 partition_alter1_ndb : timeout. Needs too much time. partition_alter2_ndb : cannot create t1 -partition_char_innodb : crash. Bug? More investigations partition_sessions : needs system_3_init.inc partition_engine_ndb : cannot create t1 part_supported_sql_func_ndb : cannot create t1 rpl_ndb_dd_partitions : cannot create t1 -partition_float_innodb : Bug#30583 Partition on DOUBLE key + INNODB + count(*) == crash diff --git a/mysql-test/suite/parts/t/part_blocked_sql_func_innodb.test b/mysql-test/suite/parts/t/part_blocked_sql_func_innodb.test index c2bbf6ad26c..12f5aabf59f 100644 --- a/mysql-test/suite/parts/t/part_blocked_sql_func_innodb.test +++ b/mysql-test/suite/parts/t/part_blocked_sql_func_innodb.test @@ -14,11 +14,11 @@ ################################################################################ # -# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE ! +# 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -40,5 +40,3 @@ let $engine= 'INNODB'; #------------------------------------------------------------------------------# --source suite/parts/inc/part_blocked_sql_funcs_main.inc -# --source inc/part_blocked_sql_funcs_main.inc - diff --git a/mysql-test/suite/parts/t/part_blocked_sql_func_myisam.test b/mysql-test/suite/parts/t/part_blocked_sql_func_myisam.test index bd7247e4ba5..6478f8c9f81 100644 --- a/mysql-test/suite/parts/t/part_blocked_sql_func_myisam.test +++ b/mysql-test/suite/parts/t/part_blocked_sql_func_myisam.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -39,5 +39,3 @@ let $engine= 'MYISAM'; #------------------------------------------------------------------------------# --source suite/parts/inc/part_blocked_sql_funcs_main.inc -# --source inc/part_blocked_sql_funcs_main.inc - diff --git a/mysql-test/suite/parts/t/part_supported_sql_func_innodb.test b/mysql-test/suite/parts/t/part_supported_sql_func_innodb.test index ee765bbe1d0..e8d263e369c 100644 --- a/mysql-test/suite/parts/t/part_supported_sql_func_innodb.test +++ b/mysql-test/suite/parts/t/part_supported_sql_func_innodb.test @@ -14,7 +14,7 @@ ################################################################################ # -# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE ! +# 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. # @@ -38,5 +38,3 @@ let $engine= 'INNODB'; #------------------------------------------------------------------------------# --source suite/parts/inc/part_supported_sql_funcs_main.inc -# --source inc/part_supported_sql_funcs_main.inc - diff --git a/mysql-test/suite/parts/t/part_supported_sql_func_myisam.test b/mysql-test/suite/parts/t/part_supported_sql_func_myisam.test index 58c7d8ebfb1..4fb1e532c6b 100644 --- a/mysql-test/suite/parts/t/part_supported_sql_func_myisam.test +++ b/mysql-test/suite/parts/t/part_supported_sql_func_myisam.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -40,5 +40,3 @@ let $engine= 'MYISAM'; #------------------------------------------------------------------------------# --source suite/parts/inc/part_supported_sql_funcs_main.inc -# --source inc/part_supported_sql_funcs_main.inc - diff --git a/mysql-test/suite/parts/t/part_supported_sql_func_ndb.test b/mysql-test/suite/parts/t/part_supported_sql_func_ndb.test index c21ffe16d19..c21649ba396 100644 --- a/mysql-test/suite/parts/t/part_supported_sql_func_ndb.test +++ b/mysql-test/suite/parts/t/part_supported_sql_func_ndb.test @@ -30,11 +30,9 @@ let $do_long_tests= 1; #------------------------------------------------------------------------------# # Engine specific settings and requirements ---source include/have_ndb.inc ##### Storage engine to be tested +--source include/have_ndb.inc let $engine= 'NDB'; #------------------------------------------------------------------------------# --source suite/parts/inc/part_supported_sql_funcs_main.inc -# --source inc/part_supported_sql_funcs_main.inc - diff --git a/mysql-test/suite/parts/t/partition_alter1_innodb.test b/mysql-test/suite/parts/t/partition_alter1_innodb.test index 2667f1dbccd..bc07a832043 100644 --- a/mysql-test/suite/parts/t/partition_alter1_innodb.test +++ b/mysql-test/suite/parts/t/partition_alter1_innodb.test @@ -6,7 +6,7 @@ # InnoDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -47,8 +47,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### Execute the test of "table" files # InnoDB has no files per PK, UI, ... @@ -64,7 +64,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -72,7 +71,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter1.inc -# --source inc/partition_alter1.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -80,4 +78,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_alter1_myisam.test b/mysql-test/suite/parts/t/partition_alter1_myisam.test index 0959de92c15..a6a60f4a61d 100644 --- a/mysql-test/suite/parts/t/partition_alter1_myisam.test +++ b/mysql-test/suite/parts/t/partition_alter1_myisam.test @@ -6,7 +6,7 @@ # MyISAM branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -63,7 +63,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -71,7 +70,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter1.inc -# --source inc/partition_alter1.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -79,4 +77,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_alter1_ndb.test b/mysql-test/suite/parts/t/partition_alter1_ndb.test index 96ea9376eb9..cb18b203d39 100644 --- a/mysql-test/suite/parts/t/partition_alter1_ndb.test +++ b/mysql-test/suite/parts/t/partition_alter1_ndb.test @@ -6,7 +6,7 @@ # NDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -47,8 +47,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'ndbcluster'; --source include/have_ndb.inc +let $engine= 'ndbcluster'; ##### Execute the test of "table" files # NDB has no files per PK, UI, ... @@ -67,7 +67,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # Bug#18735: Partitions: NDB, UNIQUE INDEX, UPDATE, strange server response @@ -76,7 +75,6 @@ let $fixed_bug18735= 0; #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter1.inc -# --source inc/partition_alter1.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -84,4 +82,3 @@ let $fixed_bug18735= 0; #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_alter2_innodb.test b/mysql-test/suite/parts/t/partition_alter2_innodb.test index df2b4a0e048..a5efdc71437 100644 --- a/mysql-test/suite/parts/t/partition_alter2_innodb.test +++ b/mysql-test/suite/parts/t/partition_alter2_innodb.test @@ -6,7 +6,7 @@ # InnoDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -47,8 +47,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### Execute the test of "table" files # InnoDB has no files per PK, UI, ... @@ -64,7 +64,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -72,7 +71,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter2.inc -# --source inc/partition_alter2.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -80,4 +78,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_alter2_myisam.test b/mysql-test/suite/parts/t/partition_alter2_myisam.test index b8b92d1b218..a5b6380ef15 100644 --- a/mysql-test/suite/parts/t/partition_alter2_myisam.test +++ b/mysql-test/suite/parts/t/partition_alter2_myisam.test @@ -6,7 +6,7 @@ # MyISAM branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -63,7 +63,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -71,7 +70,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter2.inc -# --source inc/partition_alter2.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -79,4 +77,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_alter2_ndb.test b/mysql-test/suite/parts/t/partition_alter2_ndb.test index 8506ec3fea8..e9b4da93b7a 100644 --- a/mysql-test/suite/parts/t/partition_alter2_ndb.test +++ b/mysql-test/suite/parts/t/partition_alter2_ndb.test @@ -6,7 +6,7 @@ # NDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -48,8 +48,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'ndbcluster'; --source include/have_ndb.inc +let $engine= 'ndbcluster'; ##### Execute the test of "table" files # NDB has no files per PK, UI, ... @@ -68,7 +68,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -76,7 +75,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter2.inc -# --source inc/partition_alter2.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -84,4 +82,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_alter3_innodb.test b/mysql-test/suite/parts/t/partition_alter3_innodb.test index 253cd7242bd..23c1a987aae 100644 --- a/mysql-test/suite/parts/t/partition_alter3_innodb.test +++ b/mysql-test/suite/parts/t/partition_alter3_innodb.test @@ -6,7 +6,7 @@ # InnoDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-04-24 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -46,8 +46,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### Execute the test of "table" files # InnoDB has no files per PK, UI, ... @@ -63,7 +63,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -71,7 +70,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter3.inc -# --source inc/partition_alter3.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -79,4 +77,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_alter3_myisam.test b/mysql-test/suite/parts/t/partition_alter3_myisam.test index 894340de4db..2212065fcc1 100644 --- a/mysql-test/suite/parts/t/partition_alter3_myisam.test +++ b/mysql-test/suite/parts/t/partition_alter3_myisam.test @@ -6,7 +6,7 @@ # MyISAM branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-04-11 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -62,7 +62,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -70,7 +69,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter3.inc -# --source inc/partition_alter3.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -78,4 +76,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_alter4_innodb.test b/mysql-test/suite/parts/t/partition_alter4_innodb.test index eea8b9997ef..3061e5c9e7f 100644 --- a/mysql-test/suite/parts/t/partition_alter4_innodb.test +++ b/mysql-test/suite/parts/t/partition_alter4_innodb.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -47,8 +47,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### Execute the test of "table" files # InnoDB has no files per PK, UI, ... @@ -64,7 +64,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -72,7 +71,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter4.inc -# --source inc/partition_alter4.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -80,4 +78,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_alter4_myisam.test b/mysql-test/suite/parts/t/partition_alter4_myisam.test index 064dc111ef3..3b2117a3745 100644 --- a/mysql-test/suite/parts/t/partition_alter4_myisam.test +++ b/mysql-test/suite/parts/t/partition_alter4_myisam.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -63,7 +63,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -71,7 +70,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_alter4.inc -# --source inc/partition_alter4.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -79,4 +77,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_basic_innodb.test b/mysql-test/suite/parts/t/partition_basic_innodb.test index 8e6f6e6d166..2c3e172014c 100644 --- a/mysql-test/suite/parts/t/partition_basic_innodb.test +++ b/mysql-test/suite/parts/t/partition_basic_innodb.test @@ -6,7 +6,7 @@ # InnoDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -47,8 +47,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### Execute the test of "table" files # InnoDB has no files per PK, UI, ... @@ -64,7 +64,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -72,7 +71,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_basic.inc -# --source inc/partition_basic.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -80,4 +78,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_basic_myisam.test b/mysql-test/suite/parts/t/partition_basic_myisam.test index 4f653db88e3..8d84982335c 100644 --- a/mysql-test/suite/parts/t/partition_basic_myisam.test +++ b/mysql-test/suite/parts/t/partition_basic_myisam.test @@ -6,7 +6,7 @@ # MyISAM branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -63,7 +63,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -71,7 +70,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_basic.inc -# --source inc/partition_basic.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -79,4 +77,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_basic_ndb.test b/mysql-test/suite/parts/t/partition_basic_ndb.test index 2e6f830eefc..273d92ac80d 100644 --- a/mysql-test/suite/parts/t/partition_basic_ndb.test +++ b/mysql-test/suite/parts/t/partition_basic_ndb.test @@ -6,7 +6,7 @@ # NDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -48,8 +48,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'ndbcluster'; --source include/have_ndb.inc +let $engine= 'ndbcluster'; ##### Execute the test of "table" files # NDB has no files per PK, UI, ... @@ -68,18 +68,16 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # Bug#18730 Partitions: NDB, crash on SELECT MIN(<unique column>) -let $fixed_bug18730= 0; +let $fixed_bug18730= 1; # Bug#18735: Partitions: NDB, UNIQUE INDEX, UPDATE, strange server response let $fixed_bug18735= 0; #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_basic.inc -# --source inc/partition_basic.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -87,4 +85,3 @@ let $fixed_bug18735= 0; #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_bit_innodb.test b/mysql-test/suite/parts/t/partition_bit_innodb.test index 7bc74036b2e..9b8eb90bb18 100644 --- a/mysql-test/suite/parts/t/partition_bit_innodb.test +++ b/mysql-test/suite/parts/t/partition_bit_innodb.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -53,5 +53,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_bit.inc -# --source inc/partition_basic.inc - diff --git a/mysql-test/suite/parts/t/partition_bit_myisam.test b/mysql-test/suite/parts/t/partition_bit_myisam.test index c21ca104ca5..d2503c4923a 100644 --- a/mysql-test/suite/parts/t/partition_bit_myisam.test +++ b/mysql-test/suite/parts/t/partition_bit_myisam.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -52,5 +52,4 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_bit.inc -# --source inc/partition_basic.inc diff --git a/mysql-test/suite/parts/t/partition_bit_ndb.test b/mysql-test/suite/parts/t/partition_bit_ndb.test index 9e21c7de158..94e4119031c 100644 --- a/mysql-test/suite/parts/t/partition_bit_ndb.test +++ b/mysql-test/suite/parts/t/partition_bit_ndb.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -53,5 +53,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_bit.inc -# --source inc/partition_basic.inc - diff --git a/mysql-test/suite/parts/t/partition_char_innodb.test b/mysql-test/suite/parts/t/partition_char_innodb.test index 27295084de4..0fd74dc46bd 100644 --- a/mysql-test/suite/parts/t/partition_char_innodb.test +++ b/mysql-test/suite/parts/t/partition_char_innodb.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -35,8 +35,8 @@ let $debug= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### max rows to be inserted let $maxrows=65535; @@ -51,11 +51,3 @@ let $maxrows=65535; --source suite/parts/inc/partition_set.inc --source suite/parts/inc/partition_blob.inc --source suite/parts/inc/partition_text.inc -# --source inc/partition_char.inc -# --source inc/partition_binary.inc -# --source inc/partition_varchar.inc -# --source inc/partition_varbinary.inc -# --source inc/partition_enum.inc -# --source inc/partition_set.inc -# --source inc/partition_blob.inc -# --source inc/partition_text.inc diff --git a/mysql-test/suite/parts/t/partition_char_myisam.test b/mysql-test/suite/parts/t/partition_char_myisam.test index bdcb2cd9c24..63f478ec4ba 100644 --- a/mysql-test/suite/parts/t/partition_char_myisam.test +++ b/mysql-test/suite/parts/t/partition_char_myisam.test @@ -1,9 +1,9 @@ ################################################################################ -# t/partition_special_myisam.test # +# t/partition_char_myisam.test # # # # Purpose: # -# different Tests # -# MYISAM branch # +# Tests around character types # +# MyISAM branch # # # #------------------------------------------------------------------------------# # Original Author: HH # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -37,7 +37,16 @@ let $debug= 0; ##### Storage engine to be tested let $engine= 'MyISAM'; +##### max rows to be inserted +let $maxrows=65535; + #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines ---source suite/parts/inc/partition_key_4col.inc -# --source inc/partition_key_4col.inc +--source suite/parts/inc/partition_char.inc +--source suite/parts/inc/partition_binary.inc +--source suite/parts/inc/partition_varchar.inc +--source suite/parts/inc/partition_varbinary.inc +--source suite/parts/inc/partition_enum.inc +--source suite/parts/inc/partition_set.inc +--source suite/parts/inc/partition_blob.inc +--source suite/parts/inc/partition_text.inc diff --git a/mysql-test/suite/parts/t/partition_datetime_innodb.test b/mysql-test/suite/parts/t/partition_datetime_innodb.test index eba0bc3e10b..ec292fa04cf 100644 --- a/mysql-test/suite/parts/t/partition_datetime_innodb.test +++ b/mysql-test/suite/parts/t/partition_datetime_innodb.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -35,8 +35,8 @@ let $debug= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### max rows to be inserted let $maxrows=1024; @@ -48,8 +48,3 @@ let $maxrows=1024; --source suite/parts/inc/partition_time.inc --source suite/parts/inc/partition_datetime.inc --source suite/parts/inc/partition_year.inc -# --source inc/partition_timestamp.inc -# --source inc/partition_date.inc -# --source inc/partition_time.inc -# --source inc/partition_datetime.inc -# --source inc/partition_year.inc diff --git a/mysql-test/suite/parts/t/partition_datetime_myisam.test b/mysql-test/suite/parts/t/partition_datetime_myisam.test index 1fd6527d38e..25e304d5dcc 100644 --- a/mysql-test/suite/parts/t/partition_datetime_myisam.test +++ b/mysql-test/suite/parts/t/partition_datetime_myisam.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -47,8 +47,3 @@ let $maxrows=65535; --source suite/parts/inc/partition_time.inc --source suite/parts/inc/partition_datetime.inc --source suite/parts/inc/partition_year.inc -# --source inc/partition_timestamp.inc -# --source inc/partition_date.inc -# --source inc/partition_time.inc -# --source inc/partition_datetime.inc -# --source inc/partition_year.inc diff --git a/mysql-test/suite/parts/t/partition_decimal_innodb.test b/mysql-test/suite/parts/t/partition_decimal_innodb.test index 22e759ec5d9..6d0aa156abe 100644 --- a/mysql-test/suite/parts/t/partition_decimal_innodb.test +++ b/mysql-test/suite/parts/t/partition_decimal_innodb.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -35,8 +35,8 @@ let $debug= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### number of rows to be inserted let $maxrows=1024; @@ -44,4 +44,3 @@ let $maxrows=1024; #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_decimal.inc -# --source inc/partition_decimal.inc diff --git a/mysql-test/suite/parts/t/partition_decimal_myisam.test b/mysql-test/suite/parts/t/partition_decimal_myisam.test index 9be50028647..49fc64cbd37 100644 --- a/mysql-test/suite/parts/t/partition_decimal_myisam.test +++ b/mysql-test/suite/parts/t/partition_decimal_myisam.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -42,4 +42,3 @@ let $maxrows=65535; #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_decimal.inc -# --source inc/partition_decimal.inc diff --git a/mysql-test/suite/parts/t/partition_engine_innodb.test b/mysql-test/suite/parts/t/partition_engine_innodb.test index 6205c970b21..13a7b133fa1 100644 --- a/mysql-test/suite/parts/t/partition_engine_innodb.test +++ b/mysql-test/suite/parts/t/partition_engine_innodb.test @@ -6,7 +6,7 @@ # InnoDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -46,8 +46,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### Execute the test of "table" files # InnoDB has no files per PK, UI, ... @@ -63,7 +63,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -71,7 +70,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_engine.inc -# --source inc/partition_engine.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -79,4 +77,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_engine_myisam.test b/mysql-test/suite/parts/t/partition_engine_myisam.test index 437e20ab3ee..a7696d690db 100644 --- a/mysql-test/suite/parts/t/partition_engine_myisam.test +++ b/mysql-test/suite/parts/t/partition_engine_myisam.test @@ -6,7 +6,7 @@ # MyISAM branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -62,7 +62,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -70,7 +69,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_engine.inc -# --source inc/partition_engine.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -78,4 +76,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_engine_ndb.test b/mysql-test/suite/parts/t/partition_engine_ndb.test index 223e9b035c6..1e185c8ebaa 100644 --- a/mysql-test/suite/parts/t/partition_engine_ndb.test +++ b/mysql-test/suite/parts/t/partition_engine_ndb.test @@ -6,7 +6,7 @@ # NDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -67,7 +67,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -75,7 +74,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_engine.inc -# --source inc/partition_engine.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -83,4 +81,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_float_innodb.test b/mysql-test/suite/parts/t/partition_float_innodb.test index 3395d1812d2..2f1fe723dad 100644 --- a/mysql-test/suite/parts/t/partition_float_innodb.test +++ b/mysql-test/suite/parts/t/partition_float_innodb.test @@ -1,9 +1,9 @@ ################################################################################ -# t/partition_float_myisam.test # +# t/partition_float_innodb.test # # # # Purpose: # # Tests around float type # -# MyISAM branch # +# INNODB branch # # # #------------------------------------------------------------------------------# # Original Author: HH # @@ -14,11 +14,11 @@ ################################################################################ # -# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE ! +# 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -35,8 +35,8 @@ let $debug= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### Number of row to be inserted. let $maxrows=1024; @@ -45,5 +45,3 @@ let $maxrows=1024; # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_float.inc --source suite/parts/inc/partition_double.inc -# --source inc/partition_float.inc -# --source inc/partition_double.inc diff --git a/mysql-test/suite/parts/t/partition_float_myisam.test b/mysql-test/suite/parts/t/partition_float_myisam.test index 57ef91a3169..51e0f1f5a21 100644 --- a/mysql-test/suite/parts/t/partition_float_myisam.test +++ b/mysql-test/suite/parts/t/partition_float_myisam.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -43,5 +43,3 @@ let $maxrows=16384; # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_float.inc --source suite/parts/inc/partition_double.inc -# --source inc/partition_float.inc -# --source inc/partition_double.inc diff --git a/mysql-test/suite/parts/t/partition_int_innodb.test b/mysql-test/suite/parts/t/partition_int_innodb.test index dc14b369654..698a2c93c22 100644 --- a/mysql-test/suite/parts/t/partition_int_innodb.test +++ b/mysql-test/suite/parts/t/partition_int_innodb.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -35,8 +35,8 @@ let $debug= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### max rows to be inserted let $maxrows=1024; @@ -48,8 +48,3 @@ let $maxrows=1024; --source suite/parts/inc/partition_int.inc --source suite/parts/inc/partition_mediumint.inc --source suite/parts/inc/partition_bigint.inc -# --source inc/partition_tinyint.inc -# --source inc/partition_samllint.inc -# --source inc/partition_int.inc -# --source inc/partition_mediumint.inc -# --source inc/partition_bigint.inc diff --git a/mysql-test/suite/parts/t/partition_int_myisam.test b/mysql-test/suite/parts/t/partition_int_myisam.test index c85a1471a35..b0ede4995e8 100644 --- a/mysql-test/suite/parts/t/partition_int_myisam.test +++ b/mysql-test/suite/parts/t/partition_int_myisam.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -46,8 +46,3 @@ let $maxrows=65535; --source suite/parts/inc/partition_int.inc --source suite/parts/inc/partition_mediumint.inc --source suite/parts/inc/partition_bigint.inc -# --source inc/partition_tinyint.inc -# --source inc/partition_samllint.inc -# --source inc/partition_int.inc -# --source inc/partition_mediumint.inc -# --source inc/partition_bigint.inc diff --git a/mysql-test/suite/parts/t/partition_int_ndb.test b/mysql-test/suite/parts/t/partition_int_ndb.test index dfa853bed16..0a60408292a 100644 --- a/mysql-test/suite/parts/t/partition_int_ndb.test +++ b/mysql-test/suite/parts/t/partition_int_ndb.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -45,8 +45,3 @@ let $engine= 'NDB'; --source suite/parts/inc/partition_int.inc --source suite/parts/inc/partition_mediumint.inc --source suite/parts/inc/partition_bigint.inc -# --source inc/partition_tinyint.inc -# --source inc/partition_samllint.inc -# --source inc/partition_int.inc -# --source inc/partition_mediumint.inc -# --source inc/partition_bigint.inc diff --git a/mysql-test/suite/parts/t/partition_special_innodb.test b/mysql-test/suite/parts/t/partition_special_innodb.test index f552d64f4e4..598dfea1e27 100644 --- a/mysql-test/suite/parts/t/partition_special_innodb.test +++ b/mysql-test/suite/parts/t/partition_special_innodb.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -35,8 +35,8 @@ let $debug= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines @@ -44,7 +44,3 @@ let $engine= 'InnoDB'; --source suite/parts/inc/partition_key_8col.inc --source suite/parts/inc/partition_key_16col.inc --source suite/parts/inc/partition_key_32col.inc -# --source inc/partition_key_4col.inc -# --source inc/partition_key_8col.inc -# --source inc/partition_key_16col.inc -# --source inc/partition_key_32col.inc diff --git a/mysql-test/suite/parts/t/partition_special_myisam.test b/mysql-test/suite/parts/t/partition_special_myisam.test index c87d39ab577..e1737ebc3c2 100644 --- a/mysql-test/suite/parts/t/partition_special_myisam.test +++ b/mysql-test/suite/parts/t/partition_special_myisam.test @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -43,7 +43,3 @@ let $engine= 'MyISAM'; --source suite/parts/inc/partition_key_8col.inc --source suite/parts/inc/partition_key_16col.inc --source suite/parts/inc/partition_key_32col.inc -# --source inc/partition_key_4col.inc -# --source inc/partition_key_8col.inc -# --source inc/partition_key_16col.inc -# --source inc/partition_key_32col.inc diff --git a/mysql-test/suite/parts/t/partition_syntax_innodb.test b/mysql-test/suite/parts/t/partition_syntax_innodb.test index ce62b06bd6f..6e65337d267 100644 --- a/mysql-test/suite/parts/t/partition_syntax_innodb.test +++ b/mysql-test/suite/parts/t/partition_syntax_innodb.test @@ -6,7 +6,7 @@ # InnoDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -46,8 +46,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### Execute the test of "table" files # InnoDB has no files per PK, UI, ... @@ -63,7 +63,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -71,7 +70,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_syntax.inc -# --source inc/partition_syntax.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -79,4 +77,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_syntax_myisam.test b/mysql-test/suite/parts/t/partition_syntax_myisam.test index 62396580b50..7777833f6d4 100644 --- a/mysql-test/suite/parts/t/partition_syntax_myisam.test +++ b/mysql-test/suite/parts/t/partition_syntax_myisam.test @@ -6,7 +6,7 @@ # MyISAM branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -62,7 +62,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -70,7 +69,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_syntax.inc -# --source inc/partition_syntax.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -78,4 +76,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_syntax_ndb.test b/mysql-test/suite/parts/t/partition_syntax_ndb.test index 3eb453ce7ea..90b74452ab1 100644 --- a/mysql-test/suite/parts/t/partition_syntax_ndb.test +++ b/mysql-test/suite/parts/t/partition_syntax_ndb.test @@ -6,7 +6,7 @@ # NDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -47,8 +47,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'ndbcluster'; --source include/have_ndb.inc +let $engine= 'ndbcluster'; ##### Execute the test of "table" files # NDB has no files per PK, UI, ... @@ -67,7 +67,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # Bug#18735: Partitions: NDB, UNIQUE INDEX, UPDATE, strange server response @@ -76,7 +75,6 @@ let $fixed_bug18735= 0; #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_syntax.inc -# --source inc/partition_syntax.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -84,4 +82,3 @@ let $fixed_bug18735= 0; #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_value_innodb.test b/mysql-test/suite/parts/t/partition_value_innodb.test index 2e3c6ff98ad..9d59533a54e 100644 --- a/mysql-test/suite/parts/t/partition_value_innodb.test +++ b/mysql-test/suite/parts/t/partition_value_innodb.test @@ -6,7 +6,7 @@ # InnoDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-04-11 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -46,8 +46,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'InnoDB'; --source include/have_innodb.inc +let $engine= 'InnoDB'; ##### Execute the test of "table" files # InnoDB has no files per PK, UI, ... @@ -63,7 +63,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -71,7 +70,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_value.inc -# --source inc/partition_value.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -79,4 +77,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_value_myisam.test b/mysql-test/suite/parts/t/partition_value_myisam.test index 78e781111f7..d6020669509 100644 --- a/mysql-test/suite/parts/t/partition_value_myisam.test +++ b/mysql-test/suite/parts/t/partition_value_myisam.test @@ -6,7 +6,7 @@ # MyISAM branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-04-11 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -62,7 +62,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -70,7 +69,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_value.inc -# --source inc/partition_value.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -78,4 +76,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/parts/t/partition_value_ndb.test b/mysql-test/suite/parts/t/partition_value_ndb.test index 94230af131e..91497c3ec42 100644 --- a/mysql-test/suite/parts/t/partition_value_ndb.test +++ b/mysql-test/suite/parts/t/partition_value_ndb.test @@ -6,7 +6,7 @@ # NDB branch # # # #------------------------------------------------------------------------------# -# Original Author: ML # +# Original Author: mleich # # Original Date: 2006-04-11 # # Change Author: # # Change Date: # @@ -18,7 +18,7 @@ # 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 include/partition.pre before changing +# Please read the README at the end of inc/partition.pre before changing # any of the variables. # @@ -47,8 +47,8 @@ let $more_pk_ui_tests= 0; # Engine specific settings and requirements ##### Storage engine to be tested -let $engine= 'ndbcluster'; --source include/have_ndb.inc +let $engine= 'ndbcluster'; ##### Execute the test of "table" files # NDB has no files per PK, UI, ... @@ -67,7 +67,6 @@ let $MAX_VALUE= (2147483646); # Generate the prerequisites ($variables, @variables, tables) needed --source suite/parts/inc/partition.pre -# --source inc/partition.pre ##### Workarounds for known open engine specific bugs # none @@ -75,7 +74,6 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/parts/inc/partition_value.inc -# --source inc/partition_value.inc #------------------------------------------------------------------------------# # Execute storage engine specific tests @@ -83,4 +81,3 @@ let $MAX_VALUE= (2147483646); #------------------------------------------------------------------------------# # Cleanup --source suite/parts/inc/partition_cleanup.inc -# --source inc/partition_cleanup.inc diff --git a/mysql-test/suite/rpl/r/rpl_binlog_grant.result b/mysql-test/suite/rpl/r/rpl_binlog_grant.result index 43a21913cf6..72dc58effa1 100644 --- a/mysql-test/suite/rpl/r/rpl_binlog_grant.result +++ b/mysql-test/suite/rpl/r/rpl_binlog_grant.result @@ -1,3 +1,9 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; drop database if exists d1; create database d1; use d1; diff --git a/mysql-test/suite/rpl/r/rpl_drop_view.result b/mysql-test/suite/rpl/r/rpl_drop_view.result new file mode 100644 index 00000000000..ef625464881 --- /dev/null +++ b/mysql-test/suite/rpl/r/rpl_drop_view.result @@ -0,0 +1,27 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +drop table if exists t1, t2; +drop view if exists v1, v2, v3, not_exist_view; +create table t1 (a int); +create table t2 (b int); +create table t3 (c int); +create view v1 as select * from t1; +create view v2 as select * from t2; +create view v3 as select * from t3; +drop view not_exist_view; +ERROR 42S02: Unknown table 'not_exist_view' +drop view v1, not_exist_view; +ERROR 42S02: Unknown table 'not_exist_view' +select * from v1; +ERROR 42S02: Table 'test.v1' doesn't exist +drop view v2, v3; +select * from v1; +ERROR 42S02: Table 'test.v1' doesn't exist +select * from v2; +ERROR 42S02: Table 'test.v2' doesn't exist +select * from v3; +ERROR 42S02: Table 'test.v3' doesn't exist diff --git a/mysql-test/suite/rpl/r/rpl_extraCol_innodb.result b/mysql-test/suite/rpl/r/rpl_extraCol_innodb.result index 1c21a80acb1..e268e4c2e51 100644 --- a/mysql-test/suite/rpl/r/rpl_extraCol_innodb.result +++ b/mysql-test/suite/rpl/r/rpl_extraCol_innodb.result @@ -72,7 +72,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -90,7 +90,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size. STOP SLAVE; RESET SLAVE; @@ -139,7 +139,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3 Skip_Counter 0 Exec_Master_Log_Pos # @@ -157,7 +157,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -201,7 +201,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3 Skip_Counter 0 Exec_Master_Log_Pos # @@ -219,7 +219,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -263,7 +263,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246 Skip_Counter 0 Exec_Master_Log_Pos # @@ -281,7 +281,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -324,7 +324,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3 Skip_Counter 0 Exec_Master_Log_Pos # @@ -342,7 +342,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3; *** Drop t6 *** @@ -436,7 +436,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5 Skip_Counter 0 Exec_Master_Log_Pos # @@ -454,7 +454,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -497,7 +497,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252 Skip_Counter 0 Exec_Master_Log_Pos # @@ -515,7 +515,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -883,7 +883,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2 Skip_Counter 0 Exec_Master_Log_Pos # @@ -901,7 +901,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; diff --git a/mysql-test/suite/rpl/r/rpl_extraCol_myisam.result b/mysql-test/suite/rpl/r/rpl_extraCol_myisam.result index db0eb81fb0f..364354d3a17 100644 --- a/mysql-test/suite/rpl/r/rpl_extraCol_myisam.result +++ b/mysql-test/suite/rpl/r/rpl_extraCol_myisam.result @@ -72,7 +72,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -90,7 +90,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size. STOP SLAVE; RESET SLAVE; @@ -139,7 +139,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3 Skip_Counter 0 Exec_Master_Log_Pos # @@ -157,7 +157,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -201,7 +201,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3 Skip_Counter 0 Exec_Master_Log_Pos # @@ -219,7 +219,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -263,7 +263,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246 Skip_Counter 0 Exec_Master_Log_Pos # @@ -281,7 +281,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -324,7 +324,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3 Skip_Counter 0 Exec_Master_Log_Pos # @@ -342,7 +342,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3; *** Drop t6 *** @@ -436,7 +436,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5 Skip_Counter 0 Exec_Master_Log_Pos # @@ -454,7 +454,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -497,7 +497,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252 Skip_Counter 0 Exec_Master_Log_Pos # @@ -515,7 +515,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -883,7 +883,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2 Skip_Counter 0 Exec_Master_Log_Pos # @@ -901,7 +901,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; diff --git a/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result b/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result index a7d9e12aabd..af460ded1e7 100644 --- a/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result +++ b/mysql-test/suite/rpl/r/rpl_extraColmaster_innodb.result @@ -440,7 +440,7 @@ f1 f2 f3 f4 select * from t4 order by f1; f1 f2 f3 f4 1 1 1 first -select * from t31 order by f1; +select * from t31 order by f3; f1 f2 f3 f4 1 1 1 first 1 1 2 second @@ -563,7 +563,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 Skip_Counter 0 Exec_Master_Log_Pos # @@ -581,7 +581,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -638,7 +638,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 Skip_Counter 0 Exec_Master_Log_Pos # @@ -656,7 +656,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -1580,7 +1580,7 @@ f1 f2 f3 f4 select * from t4 order by f1; f1 f2 f3 f4 1 1 1 first -select * from t31 order by f1; +select * from t31 order by f3; f1 f2 f3 f4 1 1 1 first 1 1 2 second @@ -1703,7 +1703,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 Skip_Counter 0 Exec_Master_Log_Pos # @@ -1721,7 +1721,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -1778,7 +1778,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 Skip_Counter 0 Exec_Master_Log_Pos # @@ -1796,7 +1796,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -2720,7 +2720,7 @@ f1 f2 f3 f4 select * from t4 order by f1; f1 f2 f3 f4 1 1 1 first -select * from t31 order by f1; +select * from t31 order by f3; f1 f2 f3 f4 1 1 1 first 1 1 2 second @@ -2843,7 +2843,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 Skip_Counter 0 Exec_Master_Log_Pos # @@ -2861,7 +2861,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -2918,7 +2918,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 Skip_Counter 0 Exec_Master_Log_Pos # @@ -2936,7 +2936,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; diff --git a/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result b/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result index a8762d447d6..f0613c16825 100644 --- a/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result +++ b/mysql-test/suite/rpl/r/rpl_extraColmaster_myisam.result @@ -440,7 +440,7 @@ f1 f2 f3 f4 select * from t4 order by f1; f1 f2 f3 f4 1 1 1 first -select * from t31 order by f1; +select * from t31 order by f3; f1 f2 f3 f4 1 1 1 first 1 1 2 second @@ -563,7 +563,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 Skip_Counter 0 Exec_Master_Log_Pos # @@ -581,7 +581,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -638,7 +638,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 Skip_Counter 0 Exec_Master_Log_Pos # @@ -656,7 +656,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -1580,7 +1580,7 @@ f1 f2 f3 f4 select * from t4 order by f1; f1 f2 f3 f4 1 1 1 first -select * from t31 order by f1; +select * from t31 order by f3; f1 f2 f3 f4 1 1 1 first 1 1 2 second @@ -1703,7 +1703,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 Skip_Counter 0 Exec_Master_Log_Pos # @@ -1721,7 +1721,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -1778,7 +1778,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 Skip_Counter 0 Exec_Master_Log_Pos # @@ -1796,7 +1796,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -2720,7 +2720,7 @@ f1 f2 f3 f4 select * from t4 order by f1; f1 f2 f3 f4 1 1 1 first -select * from t31 order by f1; +select * from t31 order by f3; f1 f2 f3 f4 1 1 1 first 1 1 2 second @@ -2843,7 +2843,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 Skip_Counter 0 Exec_Master_Log_Pos # @@ -2861,7 +2861,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 5, test.t10 has type 254 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -2918,7 +2918,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 Skip_Counter 0 Exec_Master_Log_Pos # @@ -2936,7 +2936,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 252, test.t11 has type 15 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; diff --git a/mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result b/mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result index 2239c32eea3..e7a912b75fa 100644 --- a/mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result +++ b/mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result @@ -40,3 +40,16 @@ Got one of the listed errors SET FOREIGN_KEY_CHECKS=0; DROP TABLE IF EXISTS t1,t2,t3; SET FOREIGN_KEY_CHECKS=1; +create table t1 (b int primary key) engine = INNODB; +create table t2 (a int primary key, b int, foreign key (b) references t1(b)) +engine = INNODB; +insert into t1 set b=1; +insert into t2 set a=1, b=1; +set foreign_key_checks=0; +set @@session.binlog_format=row; +delete from t1; +must sync w/o a problem (could not with the buggy code) +select count(*) from t1 /* must be zero */; +count(*) +0 +drop table t2,t1; diff --git a/mysql-test/suite/rpl/r/rpl_idempotency.result b/mysql-test/suite/rpl/r/rpl_idempotency.result index f17fbd82c44..5a4052864ad 100644 --- a/mysql-test/suite/rpl/r/rpl_idempotency.result +++ b/mysql-test/suite/rpl/r/rpl_idempotency.result @@ -69,3 +69,158 @@ a Last_SQL_Error 0 DROP TABLE t1, t2; +select @@global.slave_exec_mode /* must be IDEMPOTENT */; +@@global.slave_exec_mode +IDEMPOTENT +create table ti1 (b int primary key) engine = innodb; +create table ti2 (a int primary key, b int, foreign key (b) references ti1(b)) +engine = innodb; +set foreign_key_checks=1 /* ensure the check */; +insert into ti1 values (1),(2),(3); +insert into ti2 set a=2, b=2; +select * from ti1 order by b /* must be (1),(2),(3) */; +b +1 +2 +3 +insert into ti2 set a=1, b=1; +select * from ti2 order by b /* must be (1,1) (2,2) */; +a b +1 1 +2 2 +set @save_binlog_format= @@session.binlog_format; +set @@session.binlog_format= row; +delete from ti1 where b=1; +select * from ti1 order by b /* must be (2),(3) */; +b +2 +3 +select * from ti1 order by b /* must stays as were on master (1),(2),(3) */; +b +1 +2 +3 +delete from ti1 where b=3; +insert into ti2 set a=3, b=3; +select * from ti2 order by b /* must be (1,1),(2,2) - not inserted */; +a b +1 1 +2 2 +set global slave_exec_mode='IDEMPOTENT'; +set global slave_exec_mode='STRICT'; +set global slave_exec_mode='IDEMPOTENT,STRICT'; +ERROR HY000: Ambiguous slave modes combination. +select @@global.slave_exec_mode /* must be STRICT */; +@@global.slave_exec_mode +STRICT +*** foreign keys errors as above now forces to stop +set foreign_key_checks=0; +drop table ti2, ti1; +create table ti1 (b int primary key) engine = innodb; +create table ti2 (a int primary key, b int, foreign key (b) references ti1(b)) +engine = innodb; +set foreign_key_checks=1 /* ensure the check */; +insert into ti1 values (1),(2),(3); +insert into ti2 set a=2, b=2; +select * from ti1 order by b /* must be (1),(2),(3) */; +b +1 +2 +3 +*** conspire future problem +insert into ti2 set a=1, b=1; +select * from ti2 order by b /* must be (1,1) (2,2) */; +a b +1 1 +2 2 +delete from ti1 where b=1 /* offending delete event */; +select * from ti1 order by b /* must be (2),(3) */; +b +2 +3 +*** slave must stop +Last_SQL_Error +0 +select * from ti1 order by b /* must be (1),(2),(3) - not deleted */; +b +1 +2 +3 +set foreign_key_checks= 0; +delete from ti2 where b=1; +set foreign_key_checks= 1; +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +set global slave_exec_mode='STRICT'; +*** conspire the following insert failure +*** conspire future problem +delete from ti1 where b=3; +insert into ti2 set a=3, b=3 /* offending write event */; +*** slave must stop +Last_SQL_Error +1452 +select * from ti2 order by b /* must be (2,2) */; +a b +2 2 +set foreign_key_checks= 0; +insert into ti1 set b=3; +set foreign_key_checks= 1; +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +set global slave_exec_mode='STRICT'; +select * from ti2 order by b /* must be (2,2),(3,3) */; +a b +2 2 +3 3 +*** other errors +*** conspiring query +insert into ti1 set b=1; +insert into ti1 set b=1 /* offending write event */; +*** slave must stop +Last_SQL_Error +1062 +set foreign_key_checks= 0; +delete from ti1 where b=1; +set foreign_key_checks= 1; +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +set global slave_exec_mode='STRICT'; +CREATE TABLE t1 (a INT PRIMARY KEY); +CREATE TABLE t2 (a INT); +INSERT INTO t1 VALUES (-1),(-2),(-3); +INSERT INTO t2 VALUES (-1),(-2),(-3); +DELETE FROM t1 WHERE a = -2; +DELETE FROM t2 WHERE a = -2; +DELETE FROM t1 WHERE a = -2; +*** slave must stop +Last_SQL_Error +1032 +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +set global slave_exec_mode='STRICT'; +DELETE FROM t2 WHERE a = -2; +*** slave must stop +Last_SQL_Error +0 +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +set global slave_exec_mode='STRICT'; +UPDATE t1 SET a = 1 WHERE a = -1; +UPDATE t2 SET a = 1 WHERE a = -1; +UPDATE t1 SET a = 1 WHERE a = -1; +*** slave must stop +Last_SQL_Error +1032 +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +set global slave_exec_mode='STRICT'; +UPDATE t2 SET a = 1 WHERE a = -1; +*** slave must stop +Last_SQL_Error +0 +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +set global slave_exec_mode='STRICT'; +set @@session.binlog_format= @save_binlog_format; +drop table t1,t2,ti2,ti1; +*** end of tests diff --git a/mysql-test/suite/rpl/r/rpl_ignore_table.result b/mysql-test/suite/rpl/r/rpl_ignore_table.result index e7200b31212..cdc3f5e9579 100644 --- a/mysql-test/suite/rpl/r/rpl_ignore_table.result +++ b/mysql-test/suite/rpl/r/rpl_ignore_table.result @@ -115,6 +115,7 @@ GRANT INSERT, INSERT (a), UPDATE (a), REFERENCES (a) ON `test`.`t4` TO 'mysqltes show grants for mysqltest4@localhost; Grants for mysqltest4@localhost GRANT USAGE ON *.* TO 'mysqltest4'@'localhost' IDENTIFIED BY PASSWORD '*196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7' +set global slave_exec_mode='IDEMPOTENT'; drop table t1, t4, mysqltest2.t2; drop database mysqltest2; delete from mysql.user where user like "mysqltest%"; @@ -132,6 +133,7 @@ INSERT INTO t5 (word) VALUES ('TEST’'); SELECT HEX(word) FROM t5; HEX(word) 54455354E28099 +set @@global.slave_exec_mode= default; SELECT HEX(word) FROM t5; HEX(word) 54455354E28099 diff --git a/mysql-test/suite/rpl/r/rpl_incident.result b/mysql-test/suite/rpl/r/rpl_incident.result index 568078cc276..c3baabbdbc3 100644 --- a/mysql-test/suite/rpl/r/rpl_incident.result +++ b/mysql-test/suite/rpl/r/rpl_incident.result @@ -44,7 +44,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1589 +Last_Errno 1590 Last_Error The incident LOST_EVENTS occured on the master. Message: <none> Skip_Counter 0 Exec_Master_Log_Pos # @@ -62,7 +62,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error -Last_SQL_Errno 1589 +Last_SQL_Errno 1590 Last_SQL_Error The incident LOST_EVENTS occured on the master. Message: <none> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; diff --git a/mysql-test/suite/rpl/r/rpl_loaddata_fatal.result b/mysql-test/suite/rpl/r/rpl_loaddata_fatal.result index d30110f85e9..a4d67754bd6 100644 --- a/mysql-test/suite/rpl/r/rpl_loaddata_fatal.result +++ b/mysql-test/suite/rpl/r/rpl_loaddata_fatal.result @@ -65,7 +65,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1592 +Last_Errno 1593 Last_Error Fatal error: Not enough memory Skip_Counter 0 Exec_Master_Log_Pos 325 @@ -83,7 +83,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1592 +Last_SQL_Errno 1593 Last_SQL_Error Fatal error: Not enough memory SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; diff --git a/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result b/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result index c3fd663fad8..f49c23248e5 100644 --- a/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result +++ b/mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result @@ -257,6 +257,7 @@ SELECT * FROM t1 ORDER BY a; a b 2 master,slave 5 slave +set @@global.slave_exec_mode= 'IDEMPOTENT'; **** On Master **** UPDATE t1 SET a = 5, b = 'master' WHERE a = 1; SELECT * FROM t1 ORDER BY a; @@ -264,6 +265,7 @@ a b 2 master,slave 5 master **** On Slave **** +set @@global.slave_exec_mode= default; Last_SQL_Error SELECT * FROM t1 ORDER BY a; diff --git a/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result b/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result index 2efe3a3e486..22284a26412 100644 --- a/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result +++ b/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result @@ -370,6 +370,7 @@ C1 C2 1 3 2 6 3 9 +set @@global.slave_exec_mode= 'IDEMPOTENT'; --- on master: new values inserted --- INSERT INTO t7 VALUES (1,2), (2,4), (3,6); SELECT * FROM t7 ORDER BY C1; @@ -377,6 +378,7 @@ C1 C2 1 2 2 4 3 6 +set @@global.slave_exec_mode= default; --- on slave: old values should be overwritten by replicated values --- SELECT * FROM t7 ORDER BY C1; C1 C2 @@ -406,8 +408,10 @@ a b c 2 4 6 3 6 9 99 99 99 +set @@global.slave_exec_mode= 'IDEMPOTENT'; --- on master --- INSERT INTO t8 VALUES (2,4,8); +set @@global.slave_exec_mode= default; --- on slave --- SELECT * FROM t8 ORDER BY a; a b c @@ -426,10 +430,12 @@ START SLAVE; **** On Master **** INSERT INTO t1 VALUES ('K','K'), ('L','L'), ('M','M'); **** On Master **** +set @@global.slave_exec_mode= 'IDEMPOTENT'; DELETE FROM t1 WHERE C1 = 'L'; DELETE FROM t1; SELECT COUNT(*) FROM t1 ORDER BY c1,c2; COUNT(*) 0 +set @@global.slave_exec_mode= default; Last_SQL_Error 0 SELECT COUNT(*) FROM t1 ORDER BY c1,c2; diff --git a/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result b/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result index fc78abfbe2e..f7b9e5d627a 100644 --- a/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result +++ b/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result @@ -370,6 +370,7 @@ C1 C2 1 3 2 6 3 9 +set @@global.slave_exec_mode= 'IDEMPOTENT'; --- on master: new values inserted --- INSERT INTO t7 VALUES (1,2), (2,4), (3,6); SELECT * FROM t7 ORDER BY C1; @@ -377,6 +378,7 @@ C1 C2 1 2 2 4 3 6 +set @@global.slave_exec_mode= default; --- on slave: old values should be overwritten by replicated values --- SELECT * FROM t7 ORDER BY C1; C1 C2 @@ -406,8 +408,10 @@ a b c 2 4 6 3 6 9 99 99 99 +set @@global.slave_exec_mode= 'IDEMPOTENT'; --- on master --- INSERT INTO t8 VALUES (2,4,8); +set @@global.slave_exec_mode= default; --- on slave --- SELECT * FROM t8 ORDER BY a; a b c @@ -426,10 +430,12 @@ START SLAVE; **** On Master **** INSERT INTO t1 VALUES ('K','K'), ('L','L'), ('M','M'); **** On Master **** +set @@global.slave_exec_mode= 'IDEMPOTENT'; DELETE FROM t1 WHERE C1 = 'L'; DELETE FROM t1; SELECT COUNT(*) FROM t1 ORDER BY c1,c2; COUNT(*) 0 +set @@global.slave_exec_mode= default; Last_SQL_Error 0 SELECT COUNT(*) FROM t1 ORDER BY c1,c2; diff --git a/mysql-test/suite/rpl/r/rpl_row_colSize.result b/mysql-test/suite/rpl/r/rpl_row_colSize.result index 9358e36cac6..6d002a722f1 100644 --- a/mysql-test/suite/rpl/r/rpl_row_colSize.result +++ b/mysql-test/suite/rpl/r/rpl_row_colSize.result @@ -37,7 +37,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 10, test.t1 on slave has size 3. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -55,7 +55,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 10, test.t1 on slave has size 3. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -91,7 +91,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 12, test.t1 on slave has size 12. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -109,7 +109,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 12, test.t1 on slave has size 12. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -145,7 +145,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 10, test.t1 on slave has size 3. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -163,7 +163,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 10, test.t1 on slave has size 3. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -200,7 +200,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 5, test.t1 has type 4 Skip_Counter 0 Exec_Master_Log_Pos # @@ -218,7 +218,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 5, test.t1 has type 4 SELECT COUNT(*) FROM t1; COUNT(*) @@ -255,7 +255,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 8, test.t1 on slave has size 1. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -273,7 +273,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 8, test.t1 on slave has size 1. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -309,7 +309,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 2. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -327,7 +327,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 2. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -364,7 +364,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 1. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -382,7 +382,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 1. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -419,7 +419,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 20, test.t1 on slave has size 11. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -437,7 +437,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 20, test.t1 on slave has size 11. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -505,7 +505,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 1. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -523,7 +523,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2, test.t1 on slave has size 1. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -560,7 +560,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2000, test.t1 on slave has size 100. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -578,7 +578,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2000, test.t1 on slave has size 100. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -614,7 +614,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 200, test.t1 on slave has size 10. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -632,7 +632,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 200, test.t1 on slave has size 10. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -668,7 +668,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2000, test.t1 on slave has size 1000. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -686,7 +686,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 2000, test.t1 on slave has size 1000. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) @@ -723,7 +723,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 4, test.t1 on slave has size 1. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -741,7 +741,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 size mismatch - master has size 4, test.t1 on slave has size 1. Master's column size should be <= the slave's column size. SELECT COUNT(*) FROM t1; COUNT(*) diff --git a/mysql-test/suite/rpl/r/rpl_row_mystery22.result b/mysql-test/suite/rpl/r/rpl_row_mystery22.result index bcf65e4ede3..5e42a89d741 100644 --- a/mysql-test/suite/rpl/r/rpl_row_mystery22.result +++ b/mysql-test/suite/rpl/r/rpl_row_mystery22.result @@ -5,6 +5,7 @@ reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; create table t1(n int auto_increment primary key, s char(10)); +set @@global.slave_exec_mode= 'IDEMPOTENT'; insert into t1 values (2,'old'); insert into t1 values(NULL,'new'); insert into t1 values(NULL,'new'); @@ -28,3 +29,4 @@ n s 1 new 3 new drop table t1; +set @@global.slave_exec_mode= default; diff --git a/mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result b/mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result index 566537ab745..14a4d52e3e9 100644 --- a/mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result +++ b/mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result @@ -37,6 +37,7 @@ ALTER TABLE t8 ADD e1 INT NOT NULL DEFAULT 0, ADD e2 INT NOT NULL DEFAULT 0, ADD e3 INT NOT NULL DEFAULT 0, ADD e4 INT NOT NULL DEFAULT 0, ADD e5 INT NOT NULL DEFAULT 0, ADD e6 INT NOT NULL DEFAULT 0, ADD e7 INT NOT NULL DEFAULT 0, ADD e8 INT NOT NULL DEFAULT 0; +set @@global.slave_exec_mode= 'IDEMPOTENT'; INSERT INTO t1_int VALUES (2, 4, 4711); INSERT INTO t1_char VALUES (2, 4, 'Foo is a bar'); INSERT INTO t1_bit VALUES (2, 4, b'101', b'11100', b'01'); @@ -60,6 +61,7 @@ a b 1 2 2 5 **** On Slave **** +set @@global.slave_exec_mode= default; SELECT a,b,x FROM t1_int ORDER BY a; a b x 1 2 42 @@ -123,7 +125,7 @@ Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno 1364 -Last_Error Error in Write_rows event: error during transaction execution on table test.t1_nodef. +Last_Error Could not execute Write_rows event on table test.t1_nodef; handler error <unknown>; the event's master log master-bin.000001, end_log_pos 2674 Skip_Counter 0 Exec_Master_Log_Pos # Relay_Log_Space # @@ -141,7 +143,7 @@ Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error Last_SQL_Errno 1364 -Last_SQL_Error Error in Write_rows event: error during transaction execution on table test.t1_nodef. +Last_SQL_Error Could not execute Write_rows event on table test.t1_nodef; handler error <unknown>; the event's master log master-bin.000001, end_log_pos 2674 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; INSERT INTO t9 VALUES (2); @@ -214,7 +216,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4 Skip_Counter 0 Exec_Master_Log_Pos # @@ -232,7 +234,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -257,7 +259,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4 Skip_Counter 0 Exec_Master_Log_Pos # @@ -275,7 +277,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -300,7 +302,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4 Skip_Counter 0 Exec_Master_Log_Pos # @@ -318,7 +320,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; diff --git a/mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result b/mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result index 83df75b81e9..209388ed391 100644 --- a/mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result +++ b/mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result @@ -37,6 +37,7 @@ ALTER TABLE t8 ADD e1 INT NOT NULL DEFAULT 0, ADD e2 INT NOT NULL DEFAULT 0, ADD e3 INT NOT NULL DEFAULT 0, ADD e4 INT NOT NULL DEFAULT 0, ADD e5 INT NOT NULL DEFAULT 0, ADD e6 INT NOT NULL DEFAULT 0, ADD e7 INT NOT NULL DEFAULT 0, ADD e8 INT NOT NULL DEFAULT 0; +set @@global.slave_exec_mode= 'IDEMPOTENT'; INSERT INTO t1_int VALUES (2, 4, 4711); INSERT INTO t1_char VALUES (2, 4, 'Foo is a bar'); INSERT INTO t1_bit VALUES (2, 4, b'101', b'11100', b'01'); @@ -60,6 +61,7 @@ a b 1 2 2 5 **** On Slave **** +set @@global.slave_exec_mode= default; SELECT a,b,x FROM t1_int ORDER BY a; a b x 1 2 42 @@ -123,7 +125,7 @@ Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno 1364 -Last_Error Error in Write_rows event: error during transaction execution on table test.t1_nodef. +Last_Error Could not execute Write_rows event on table test.t1_nodef; handler error <unknown>; the event's master log master-bin.000001, end_log_pos 2944 Skip_Counter 0 Exec_Master_Log_Pos # Relay_Log_Space # @@ -141,7 +143,7 @@ Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error Last_SQL_Errno 1364 -Last_SQL_Error Error in Write_rows event: error during transaction execution on table test.t1_nodef. +Last_SQL_Error Could not execute Write_rows event on table test.t1_nodef; handler error <unknown>; the event's master log master-bin.000001, end_log_pos 2944 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; INSERT INTO t9 VALUES (2); @@ -214,7 +216,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4 Skip_Counter 0 Exec_Master_Log_Pos # @@ -232,7 +234,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -257,7 +259,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4 Skip_Counter 0 Exec_Master_Log_Pos # @@ -275,7 +277,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -300,7 +302,7 @@ Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4 Skip_Counter 0 Exec_Master_Log_Pos # @@ -318,7 +320,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; diff --git a/mysql-test/suite/rpl/r/rpl_start_stop_slave.result b/mysql-test/suite/rpl/r/rpl_start_stop_slave.result index 1fcb586d1fb..04ece812f35 100644 --- a/mysql-test/suite/rpl/r/rpl_start_stop_slave.result +++ b/mysql-test/suite/rpl/r/rpl_start_stop_slave.result @@ -4,8 +4,8 @@ reset master; reset slave; drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; -stop slave; create table t1(n int); +stop slave; start slave; stop slave io_thread; start slave io_thread; diff --git a/mysql-test/suite/rpl/r/rpl_temporary_errors.result b/mysql-test/suite/rpl/r/rpl_temporary_errors.result index 5c681683b08..c9d7f4ebff6 100644 --- a/mysql-test/suite/rpl/r/rpl_temporary_errors.result +++ b/mysql-test/suite/rpl/r/rpl_temporary_errors.result @@ -12,6 +12,7 @@ INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4); SHOW STATUS LIKE 'Slave_retried_transactions'; Variable_name Value Slave_retried_transactions 0 +set @@global.slave_exec_mode= 'IDEMPOTENT'; UPDATE t1 SET a = 5, b = 47 WHERE a = 1; SELECT * FROM t1; a b @@ -28,6 +29,7 @@ a b 3 3 4 4 **** On Slave **** +set @@global.slave_exec_mode= default; SHOW STATUS LIKE 'Slave_retried_transactions'; Variable_name Value Slave_retried_transactions 0 diff --git a/mysql-test/suite/rpl/r/rpl_udf.result b/mysql-test/suite/rpl/r/rpl_udf.result index fcd2f4743ba..79a82b5fbc7 100644 --- a/mysql-test/suite/rpl/r/rpl_udf.result +++ b/mysql-test/suite/rpl/r/rpl_udf.result @@ -182,19 +182,19 @@ CREATE TABLE t1(sum INT, price FLOAT(24)) ENGINE=MyISAM; affected rows: 0 INSERT INTO t1 VALUES(myfunc_int(100), myfunc_double(50.00)); Warnings: -Warning 1591 Statement is not safe to log in statement format. +Warning 1592 Statement is not safe to log in statement format. affected rows: 1 INSERT INTO t1 VALUES(myfunc_int(10), myfunc_double(5.00)); Warnings: -Warning 1591 Statement is not safe to log in statement format. +Warning 1592 Statement is not safe to log in statement format. affected rows: 1 INSERT INTO t1 VALUES(myfunc_int(200), myfunc_double(25.00)); Warnings: -Warning 1591 Statement is not safe to log in statement format. +Warning 1592 Statement is not safe to log in statement format. affected rows: 1 INSERT INTO t1 VALUES(myfunc_int(1), myfunc_double(500.00)); Warnings: -Warning 1591 Statement is not safe to log in statement format. +Warning 1592 Statement is not safe to log in statement format. affected rows: 1 SELECT * FROM t1 ORDER BY sum; sum price diff --git a/mysql-test/suite/rpl/t/disabled.def b/mysql-test/suite/rpl/t/disabled.def index e9aeb31efe9..b57c77b6ef5 100644 --- a/mysql-test/suite/rpl/t/disabled.def +++ b/mysql-test/suite/rpl/t/disabled.def @@ -11,7 +11,5 @@ ############################################################################## rpl_ddl : BUG#26418 2007-03-01 mleich Slave out of sync after CREATE/DROP TEMPORARY TABLE + ROLLBACK on master -rpl_auto_increment_11932 : Bug#29809 2007-07-16 ingo Slave SQL errors in warnings file rpl_stm_extraColmaster_ndb : WL#3915 : Statement-based replication not supported in ndb. Enable test when supported. -rpl_extraColmaster_innodb : BUG#30854 : Tables name show as binary in slave err msg on vm-win2003-64-b and Solaris -rpl_extraColmaster_myisam : BUG#30854 +rpl_innodb_bug28430 : Bug #32247 2007-11-27 mats Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table) diff --git a/mysql-test/suite/rpl/t/rpl_binlog_grant.test b/mysql-test/suite/rpl/t/rpl_binlog_grant.test index 42af33c2e05..e95f69a3f99 100644 --- a/mysql-test/suite/rpl/t/rpl_binlog_grant.test +++ b/mysql-test/suite/rpl/t/rpl_binlog_grant.test @@ -1,3 +1,4 @@ +source include/master-slave.inc; -- source include/have_innodb.inc -- source include/not_embedded.inc -- source include/have_binlog_format_mixed_or_statement.inc diff --git a/mysql-test/suite/rpl/t/rpl_critical_errors.test b/mysql-test/suite/rpl/t/rpl_critical_errors.test index abf827c8d1f..b35cd305f92 100644 --- a/mysql-test/suite/rpl/t/rpl_critical_errors.test +++ b/mysql-test/suite/rpl/t/rpl_critical_errors.test @@ -34,7 +34,8 @@ connection master1; # This sleep is picked so that the query above has started to insert # some rows into t2. If it hasn't the slave will not stop below. -sleep 4; +let $wait_condition= SELECT COUNT(*) > 1000 FROM t1; +source include/wait_condition.inc # SHOW PROCESSLIST; diff --git a/mysql-test/suite/rpl/t/rpl_drop_view.test b/mysql-test/suite/rpl/t/rpl_drop_view.test new file mode 100644 index 00000000000..8d826b8214d --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_drop_view.test @@ -0,0 +1,31 @@ +# test case for bug#30998 +# Drop View breaks replication if view does not exist +# + +source include/master-slave.inc; +--disable_warnings +drop table if exists t1, t2; +drop view if exists v1, v2, v3, not_exist_view; +--enable_warnings +create table t1 (a int); +create table t2 (b int); +create table t3 (c int); +create view v1 as select * from t1; +create view v2 as select * from t2; +create view v3 as select * from t3; +--error 1051 +drop view not_exist_view; +--error 1051 +drop view v1, not_exist_view; +--error 1146 +select * from v1; +drop view v2, v3; +save_master_pos; +connection slave; +sync_with_master; +--error 1146 +select * from v1; +--error 1146 +select * from v2; +--error 1146 +select * from v3; diff --git a/mysql-test/suite/rpl/t/rpl_err_ignoredtable.test b/mysql-test/suite/rpl/t/rpl_err_ignoredtable.test index 4e06a6a7096..b9ab66165cc 100644 --- a/mysql-test/suite/rpl/t/rpl_err_ignoredtable.test +++ b/mysql-test/suite/rpl/t/rpl_err_ignoredtable.test @@ -43,7 +43,8 @@ insert into t3 values(connection_id()); send update t2 set a = a + 1 + get_lock('crash_lock%20C', 10); connection master1; -real_sleep 2; +let $wait_condition= SELECT a > 1 FROM t2; +source include/wait_condition.inc; select (@id := id) - id from t3; kill @id; drop table t2,t3; diff --git a/mysql-test/suite/rpl/t/rpl_idempotency-master.opt b/mysql-test/suite/rpl/t/rpl_idempotency-master.opt new file mode 100644 index 00000000000..66f581b56d0 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_idempotency-master.opt @@ -0,0 +1,2 @@ +--innodb + diff --git a/mysql-test/suite/rpl/t/rpl_idempotency-slave.opt b/mysql-test/suite/rpl/t/rpl_idempotency-slave.opt new file mode 100644 index 00000000000..71ccf047474 --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_idempotency-slave.opt @@ -0,0 +1,2 @@ +--slave-exec-mode=IDEMPOTENT --innodb + diff --git a/mysql-test/suite/rpl/t/rpl_idempotency.test b/mysql-test/suite/rpl/t/rpl_idempotency.test index 44956b7b459..1625e73ab2c 100644 --- a/mysql-test/suite/rpl/t/rpl_idempotency.test +++ b/mysql-test/suite/rpl/t/rpl_idempotency.test @@ -77,3 +77,335 @@ enable_query_log; connection master; DROP TABLE t1, t2; sync_slave_with_master; + +# bug#31609 Not all RBR slave errors reported as errors +# bug#31552 Replication breaks when deleting rows from out-of-sync table +# without PK + +# +# Idempotent applying is not default any longer. +# The default for slave-exec-mode option and server +# variable slave_exec_mode is 'STRICT'. +# When 'STRICT' mode is set, the slave SQL thread will stop whenever +# the row to change is not found. In 'IDEMPOTENT' mode, the SQL thread +# will continue running and apply the row - replace if it's Write_rows event - +# or skip to the next event. + +# the previous part of the tests was with IDEMPOTENT slave's mode. + + +# +# Other than above idempotent errors dealing with foreign keys constraint +# + +select @@global.slave_exec_mode /* must be IDEMPOTENT */; + +connection master; + +create table ti1 (b int primary key) engine = innodb; +create table ti2 (a int primary key, b int, foreign key (b) references ti1(b)) + engine = innodb; +set foreign_key_checks=1 /* ensure the check */; + +insert into ti1 values (1),(2),(3); +insert into ti2 set a=2, b=2; + +sync_slave_with_master; + +#connection slave; +select * from ti1 order by b /* must be (1),(2),(3) */; +insert into ti2 set a=1, b=1; +select * from ti2 order by b /* must be (1,1) (2,2) */; + +connection master; + +# from now on checking rbr specific idempotent errors +set @save_binlog_format= @@session.binlog_format; +set @@session.binlog_format= row; +delete from ti1 where b=1; + +select * from ti1 order by b /* must be (2),(3) */; + +# slave must catch up (expect some warnings in error.log) +sync_slave_with_master; + +#connection slave; +select * from ti1 order by b /* must stays as were on master (1),(2),(3) */; + +delete from ti1 where b=3; + +connection master; +insert into ti2 set a=3, b=3; + +# slave must catch up (expect some warnings in error.log) +sync_slave_with_master; + +#connection slave; +select * from ti2 order by b /* must be (1,1),(2,2) - not inserted */; + + +# +# Checking the new global sys variable +# + +connection slave; + +set global slave_exec_mode='IDEMPOTENT'; +set global slave_exec_mode='STRICT'; + +# checking mutual exclusion for the options +--error ER_SLAVE_AMBIGOUS_EXEC_MODE +set global slave_exec_mode='IDEMPOTENT,STRICT'; + +select @@global.slave_exec_mode /* must be STRICT */; + +# +# Checking stops. +# In the following sections strict slave sql thread is going to +# stop when faces an idempotent error. In order to proceed +# the mode is temporarily switched to indempotent. +# + +# +--echo *** foreign keys errors as above now forces to stop +# + +connection master; + +set foreign_key_checks=0; +drop table ti2, ti1; + +create table ti1 (b int primary key) engine = innodb; +create table ti2 (a int primary key, b int, foreign key (b) references ti1(b)) + engine = innodb; +set foreign_key_checks=1 /* ensure the check */; + +insert into ti1 values (1),(2),(3); +insert into ti2 set a=2, b=2; + +sync_slave_with_master; + +#connection slave; +select * from ti1 order by b /* must be (1),(2),(3) */; +--echo *** conspire future problem +insert into ti2 set a=1, b=1; +select * from ti2 order by b /* must be (1,1) (2,2) */; + +connection master; + +delete from ti1 where b=1 /* offending delete event */; +select * from ti1 order by b /* must be (2),(3) */; + +# foreign key: row is referenced + +--echo *** slave must stop +source include/wait_for_slave_sql_to_stop.inc; + +connection slave; + +let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1); +disable_query_log; +eval SELECT "$last_error" AS Last_SQL_Error; +enable_query_log; + +select * from ti1 order by b /* must be (1),(2),(3) - not deleted */; +set foreign_key_checks= 0; +delete from ti2 where b=1; +set foreign_key_checks= 1; +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +connection master; +sync_slave_with_master; +#connection slave; +set global slave_exec_mode='STRICT'; + +connection master; + +sync_slave_with_master; + +#connection slave; +--echo *** conspire the following insert failure +# foreign key: no referenced row + +--echo *** conspire future problem +delete from ti1 where b=3; + +connection master; +insert into ti2 set a=3, b=3 /* offending write event */; +--echo *** slave must stop + +source include/wait_for_slave_sql_to_stop.inc; + +connection slave; + +let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1); +disable_query_log; +eval SELECT "$last_error" AS Last_SQL_Error; +enable_query_log; + +select * from ti2 order by b /* must be (2,2) */; +set foreign_key_checks= 0; +insert into ti1 set b=3; +set foreign_key_checks= 1; +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +connection master; +sync_slave_with_master; +#connection slave; +set global slave_exec_mode='STRICT'; + +connection master; + +sync_slave_with_master; + +select * from ti2 order by b /* must be (2,2),(3,3) */; + +# +--echo *** other errors +# + +# dup key insert + +#connection slave; +--echo *** conspiring query +insert into ti1 set b=1; + +connection master; +insert into ti1 set b=1 /* offending write event */; + +--echo *** slave must stop +source include/wait_for_slave_sql_to_stop.inc; + +connection slave; + +let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1); +disable_query_log; +eval SELECT "$last_error" AS Last_SQL_Error; +enable_query_log; + +set foreign_key_checks= 0; +delete from ti1 where b=1; +set foreign_key_checks= 1; +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +connection master; +sync_slave_with_master; +#connection slave; +set global slave_exec_mode='STRICT'; + +# key not found + +connection master; + +CREATE TABLE t1 (a INT PRIMARY KEY); +CREATE TABLE t2 (a INT); +INSERT INTO t1 VALUES (-1),(-2),(-3); +INSERT INTO t2 VALUES (-1),(-2),(-3); +sync_slave_with_master; + +#connection slave; +DELETE FROM t1 WHERE a = -2; +DELETE FROM t2 WHERE a = -2; +connection master; +DELETE FROM t1 WHERE a = -2; + +--echo *** slave must stop +source include/wait_for_slave_sql_to_stop.inc; + +connection slave; + +let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1); +disable_query_log; +eval SELECT "$last_error" AS Last_SQL_Error; +enable_query_log; + +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +connection master; +sync_slave_with_master; +#connection slave; +set global slave_exec_mode='STRICT'; + +connection master; +DELETE FROM t2 WHERE a = -2; +--echo *** slave must stop +source include/wait_for_slave_sql_to_stop.inc; + +connection slave; + +let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1); +disable_query_log; +eval SELECT "$last_error" AS Last_SQL_Error; +enable_query_log; + +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +connection master; +sync_slave_with_master; +#connection slave; +set global slave_exec_mode='STRICT'; + +UPDATE t1 SET a = 1 WHERE a = -1; +UPDATE t2 SET a = 1 WHERE a = -1; + +connection master; +UPDATE t1 SET a = 1 WHERE a = -1; + +--echo *** slave must stop +source include/wait_for_slave_sql_to_stop.inc; + +connection slave; + +let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1); +disable_query_log; +eval SELECT "$last_error" AS Last_SQL_Error; +enable_query_log; + +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +connection master; +sync_slave_with_master; +#connection slave; +set global slave_exec_mode='STRICT'; + + +connection master; +UPDATE t2 SET a = 1 WHERE a = -1; + +--echo *** slave must stop +source include/wait_for_slave_sql_to_stop.inc; + +connection slave; + +let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1); +disable_query_log; +eval SELECT "$last_error" AS Last_SQL_Error; +enable_query_log; + +set global slave_exec_mode='IDEMPOTENT'; +start slave sql_thread; +connection master; +sync_slave_with_master; +#connection slave; +set global slave_exec_mode='STRICT'; + + +# cleanup for bug#31609 tests + +connection master; +set @@session.binlog_format= @save_binlog_format; +drop table t1,t2,ti2,ti1; + +sync_slave_with_master; + + +--echo *** end of tests + + + + + + + + + diff --git a/mysql-test/suite/rpl/t/rpl_ignore_table.test b/mysql-test/suite/rpl/t/rpl_ignore_table.test index fd4ae64165a..7f13b16b0de 100644 --- a/mysql-test/suite/rpl/t/rpl_ignore_table.test +++ b/mysql-test/suite/rpl/t/rpl_ignore_table.test @@ -119,6 +119,13 @@ show grants for mysqltest3@localhost; show grants for mysqltest4@localhost; # Cleanup +# connection slave; +# BUG31552 changes idempotency is not default any longer +# In order the following `delete from mysql.user', +# where mysqltest1 does not exist on slave, +# to succeed on slave the mode is temporarily changed +set global slave_exec_mode='IDEMPOTENT'; + connection master; drop table t1, t4, mysqltest2.t2; drop database mysqltest2; @@ -129,7 +136,10 @@ delete from mysql.db where user like "mysqltest%"; # move it to slave instead #delete from mysql.tables_priv where user like "mysqltest%"; delete from mysql.columns_priv where user like "mysqltest%"; + sync_slave_with_master; +# bug#31552: do not restore the mode here but later in order +# to succeed with yet the following delete from mysql.tables_priv #BUG27606 delete from mysql.tables_priv where user like "mysqltest%"; @@ -155,6 +165,7 @@ CREATE TEMPORARY TABLE tmptbl504451f4258$1 (id INT NOT NULL) ENGINE=MEMORY; INSERT INTO t5 (word) VALUES ('TEST’'); SELECT HEX(word) FROM t5; sync_slave_with_master; +set @@global.slave_exec_mode= default; # bug#31552 comments above connection slave; SELECT HEX(word) FROM t5; --error 1146 diff --git a/mysql-test/suite/rpl/t/rpl_init_slave.test b/mysql-test/suite/rpl/t/rpl_init_slave.test index 139b4902e12..6125f0a7c45 100644 --- a/mysql-test/suite/rpl/t/rpl_init_slave.test +++ b/mysql-test/suite/rpl/t/rpl_init_slave.test @@ -6,7 +6,6 @@ source include/master-slave.inc; save_master_pos; connection slave; -sleep 1; show variables like 'init_slave'; show variables like 'max_connections'; sync_with_master; diff --git a/mysql-test/suite/rpl/t/rpl_insert.test b/mysql-test/suite/rpl/t/rpl_insert.test index 0d471a0e0a9..504ca1809ad 100644 --- a/mysql-test/suite/rpl/t/rpl_insert.test +++ b/mysql-test/suite/rpl/t/rpl_insert.test @@ -17,18 +17,8 @@ let $query = "INSERT DELAYED INTO t1 VALUES (1, 'Dr. No'), (2, 'From Russia With --exec $MYSQL_SLAP --silent --concurrency=5 --iterations=200 --query=$query --delimiter=";" # Wait until all the 5000 inserts has been inserted into the table ---disable_query_log -let $counter= 300; # Max 30 seconds wait -while (`select count(*)!=5000 from mysqlslap.t1`) -{ - sleep 0.1; - dec $counter; - if (!$counter) - { - Number of records in t1 didnt reach 5000; - } -} ---enable_query_log +let $wait_condition= SELECT COUNT(*) = 5000 FROM mysqlslap.t1; +--source include/wait_condition.inc SELECT COUNT(*) FROM mysqlslap.t1; sync_slave_with_master; diff --git a/mysql-test/suite/rpl/t/rpl_loadfile.test b/mysql-test/suite/rpl/t/rpl_loadfile.test index a671bab15bb..532db77c248 100644 --- a/mysql-test/suite/rpl/t/rpl_loadfile.test +++ b/mysql-test/suite/rpl/t/rpl_loadfile.test @@ -36,11 +36,12 @@ delimiter ;| CALL test.p1(); SELECT * FROM test.t1 ORDER BY blob_column; save_master_pos; -# Need to allow some time when NDB engine is used for -# the injector thread to have time to populate binlog -sleep 10; sync_slave_with_master; connection slave; +# Need to allow some time when NDB engine is used for +# the injector thread to have time to populate binlog +let $wait_condition= SELECT INSTR(blob_column,'aberration') > 0 FROM test.t1 WHERE a = 2; +--source include/wait_condition.inc SELECT * FROM test.t1 ORDER BY blob_column; # Cleanup diff --git a/mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test b/mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test index 07fe763eb3c..5904585a050 100644 --- a/mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test +++ b/mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test @@ -242,12 +242,17 @@ INSERT INTO t1 VALUES (1,'master,slave'), (2,'master,slave'); sync_slave_with_master; UPDATE t1 SET a = 5, b = 'slave' WHERE a = 1; SELECT * FROM t1 ORDER BY a; +# since bug#31552/31609 idempotency is not default any longer. In +# order the preceeding test UPDATE t1 to pass the mode is switched +# temprorarily +set @@global.slave_exec_mode= 'IDEMPOTENT'; --echo **** On Master **** connection master; UPDATE t1 SET a = 5, b = 'master' WHERE a = 1; SELECT * FROM t1 ORDER BY a; --echo **** On Slave **** sync_slave_with_master; +set @@global.slave_exec_mode= default; let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1); disable_query_log; eval SELECT "$last_error" AS Last_SQL_Error; diff --git a/mysql-test/suite/rpl/t/rpl_row_mystery22.test b/mysql-test/suite/rpl/t/rpl_row_mystery22.test index 9933fec22fc..a3ba8648b22 100644 --- a/mysql-test/suite/rpl/t/rpl_row_mystery22.test +++ b/mysql-test/suite/rpl/t/rpl_row_mystery22.test @@ -9,6 +9,12 @@ # first, cause a duplicate key problem on the slave create table t1(n int auto_increment primary key, s char(10)); sync_slave_with_master; + +# bug#31552/31609 idempotency is not default any longer +# so that the declared in heading comments aim of the test +# should be backed up with explicit setting of the slave mode +set @@global.slave_exec_mode= 'IDEMPOTENT'; + insert into t1 values (2,'old'); connection master; insert into t1 values(NULL,'new'); @@ -43,3 +49,4 @@ select * from t1 order by n; connection master; drop table t1; sync_slave_with_master; +set @@global.slave_exec_mode= default; diff --git a/mysql-test/suite/rpl/t/rpl_row_sp001.test b/mysql-test/suite/rpl/t/rpl_row_sp001.test index c12e73b6861..1595c4a21d5 100644 --- a/mysql-test/suite/rpl/t/rpl_row_sp001.test +++ b/mysql-test/suite/rpl/t/rpl_row_sp001.test @@ -46,11 +46,15 @@ delimiter ;// -- disable_query_log -- disable_result_log +SET @wait_count=1; let $1=10; while ($1) { call test.p1(); - sleep 1; + let $wait_condition= SELECT COUNT(*) = @wait_count FROM test.t1; + -- source include/wait_condition.inc + -- disable_query_log + SET @wait_count = @wait_count + 1; dec $1; } -- enable_result_log diff --git a/mysql-test/suite/rpl/t/rpl_row_sp005.test b/mysql-test/suite/rpl/t/rpl_row_sp005.test index 054fa02f514..acd2f4511a0 100644 --- a/mysql-test/suite/rpl/t/rpl_row_sp005.test +++ b/mysql-test/suite/rpl/t/rpl_row_sp005.test @@ -84,7 +84,8 @@ let $message=< ---- Master selects-- >; --source include/show_msg.inc connection master; CALL test.p1(); -sleep 6; +let $wait_condition= SELECT COUNT(*) = 4 FROM t3; +--source include/wait_condition.inc SELECT * FROM test.t3 ORDER BY id3; let $message=< ---- Slave selects-- >; diff --git a/mysql-test/suite/rpl/t/rpl_row_stop_middle.test b/mysql-test/suite/rpl/t/rpl_row_stop_middle.test index da363736100..bc169bebfcd 100644 --- a/mysql-test/suite/rpl/t/rpl_row_stop_middle.test +++ b/mysql-test/suite/rpl/t/rpl_row_stop_middle.test @@ -33,7 +33,8 @@ start slave; # hope one second is not enough for slave to reach the last # Rows_log_event, so that test actually tests something. -real_sleep 1; +let $wait_condition= SELECT COUNT(*) >= 10 FROM t1; +--source include/wait_condition.inc stop slave; # see if slave hangs on DROP TABLE diff --git a/mysql-test/suite/rpl/t/rpl_row_trig001.test b/mysql-test/suite/rpl/t/rpl_row_trig001.test index 7b1fca2d6a1..83d0f03301d 100644 --- a/mysql-test/suite/rpl/t/rpl_row_trig001.test +++ b/mysql-test/suite/rpl/t/rpl_row_trig001.test @@ -53,11 +53,15 @@ delimiter ;// -- disable_query_log -- disable_result_log +SET @wait_count = 1; let $1=10; while ($1) { CALL test.p2(); - sleep 1; + let $wait_condition= SELECT COUNT(*) = @wait_count FROM test.t3; + --source include/wait_condition.inc + --disable_query_log + SET @wait_count = @wait_count + 1; dec $1; } -- enable_result_log diff --git a/mysql-test/suite/rpl/t/rpl_row_trig003.test b/mysql-test/suite/rpl/t/rpl_row_trig003.test index 4a1bbc5ca89..5d667e29d69 100644 --- a/mysql-test/suite/rpl/t/rpl_row_trig003.test +++ b/mysql-test/suite/rpl/t/rpl_row_trig003.test @@ -108,11 +108,13 @@ UPDATE test.t2 SET b1 = 0 WHERE b1 = 1; INSERT INTO test.t1 VALUES(NULL,1,'add some more test data test.', 'and hope for the best', 3.321,5.221,0,YEAR(NOW()),NOW()); -# To make sure BUG#14698 is gone, we sleep 2 seconds before calling trigger +# To make sure BUG#14698 is gone, we sleep before calling trigger # (with the bug in, that caused differences in TIMESTAMP columns). # We just need to let the machine's clock advance, it's not -# to do synchronization, so real_sleep is good. -real_sleep 2; +# to do synchronization. + +let $wait_condition= SELECT SUM(f)= ROUND(SUM(f)) FROM t3; +--source include/wait_condition.inc DELETE FROM test.t1 WHERE id = 1; diff --git a/mysql-test/suite/rpl/t/rpl_ssl.test b/mysql-test/suite/rpl/t/rpl_ssl.test index c1b7bc2097b..be730b35c13 100644 --- a/mysql-test/suite/rpl/t/rpl_ssl.test +++ b/mysql-test/suite/rpl/t/rpl_ssl.test @@ -42,6 +42,10 @@ select * from t1; # Do the same thing a number of times disable_query_log; disable_result_log; +# 2007-11-27 mats Bug #32756 Starting and stopping the slave in a loop can lose rows +# After discussions with Engineering, I'm disabling this part of the test to avoid it causing +# red trees. +disable_parsing; let $i= 100; while ($i) { @@ -54,7 +58,8 @@ while ($i) stop slave; dec $i; } -start slave; +enable_parsing; +START SLAVE; enable_query_log; enable_result_log; connection master; diff --git a/mysql-test/suite/rpl/t/rpl_ssl1.test b/mysql-test/suite/rpl/t/rpl_ssl1.test index b660c3991dd..b5355d737d5 100644 --- a/mysql-test/suite/rpl/t/rpl_ssl1.test +++ b/mysql-test/suite/rpl/t/rpl_ssl1.test @@ -24,7 +24,8 @@ start slave; connection master; insert into t1 values (1); #reasonable timeout for changes to propagate to slave -sleep 3; +let $wait_condition= SELECT COUNT(*) = 1 FROM t1; +source include/wait_condition.inc; connection slave; select * from t1; diff --git a/mysql-test/suite/rpl/t/rpl_start_stop_slave.test b/mysql-test/suite/rpl/t/rpl_start_stop_slave.test index 19988cf902a..93c613f4cf4 100644 --- a/mysql-test/suite/rpl/t/rpl_start_stop_slave.test +++ b/mysql-test/suite/rpl/t/rpl_start_stop_slave.test @@ -3,12 +3,12 @@ source include/master-slave.inc; # # Bug#6148 () # -connection slave; -stop slave; - # Let the master do lots of insertions connection master; create table t1(n int); +sync_slave_with_master; +stop slave; +connection master; let $1=5000; disable_query_log; while ($1) @@ -21,7 +21,8 @@ save_master_pos; connection slave; start slave; -sleep 1; +let $wait_condition= SELECT COUNT(*) > 0 FROM t1; +source include/wait_condition.inc; stop slave io_thread; start slave io_thread; sync_with_master; diff --git a/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test b/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test index 05dcb91ca28..adda4f67694 100644 --- a/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test +++ b/mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test @@ -293,7 +293,8 @@ insert delayed into t2 values(rand()); set @a=2.345; insert delayed into t2 values(@a); -sleep 4; # time for the delayed inserts to reach disk +let $wait_condition= SELECT COUNT(*) = 19 FROM t2; +--source include/wait_condition.inc # If you want to do manual testing of the mixed mode regarding UDFs (not # testable automatically as quite platform- and compiler-dependent), diff --git a/mysql-test/suite/rpl/t/rpl_temporary.test b/mysql-test/suite/rpl/t/rpl_temporary.test index 852dfdbc25c..6619f4518b9 100644 --- a/mysql-test/suite/rpl/t/rpl_temporary.test +++ b/mysql-test/suite/rpl/t/rpl_temporary.test @@ -60,23 +60,24 @@ insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10); connection con1; create temporary table t3(f int); insert into t3 select * from t1 where f<6; -sleep 1; +let $wait_condition= SELECT COUNT(*) = 5 FROM t3; +--source include/wait_condition.inc connection con2; create temporary table t3(f int); -sleep 1; connection con1; insert into t2 select count(*) from t3; -sleep 1; +let $wait_condition= SELECT COUNT(*) = 1 FROM t2; +--source include/wait_condition.inc connection con2; insert into t3 select * from t1 where f>=4; -sleep 1; +let $wait_condition= SELECT COUNT(*) = 7 FROM t3; +--source include/wait_condition.inc connection con1; drop temporary table t3; -sleep 1; connection con2; insert into t2 select count(*) from t3; diff --git a/mysql-test/suite/rpl/t/rpl_temporary_errors.test b/mysql-test/suite/rpl/t/rpl_temporary_errors.test index 6a57f3cc167..434e8e7a14f 100644 --- a/mysql-test/suite/rpl/t/rpl_temporary_errors.test +++ b/mysql-test/suite/rpl/t/rpl_temporary_errors.test @@ -8,6 +8,9 @@ INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4); --echo **** On Slave **** sync_slave_with_master; SHOW STATUS LIKE 'Slave_retried_transactions'; +# since bug#31552/31609 idempotency is not default any longer. In order +# the following UPDATE t1 to pass the mode is switched temprorarily +set @@global.slave_exec_mode= 'IDEMPOTENT'; UPDATE t1 SET a = 5, b = 47 WHERE a = 1; SELECT * FROM t1; --echo **** On Master **** @@ -17,6 +20,7 @@ SELECT * FROM t1; #SHOW BINLOG EVENTS; --echo **** On Slave **** sync_slave_with_master; +set @@global.slave_exec_mode= default; SHOW STATUS LIKE 'Slave_retried_transactions'; SELECT * FROM t1; source include/show_slave_status.inc; diff --git a/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result b/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result index d6d805daf70..685fdbf0a6e 100644 --- a/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result +++ b/mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result @@ -72,7 +72,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size. Skip_Counter 0 Exec_Master_Log_Pos # @@ -90,7 +90,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 size mismatch - master has size 10, test.t2 on slave has size 6. Master's column size should be <= the slave's column size. STOP SLAVE; RESET SLAVE; @@ -139,7 +139,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3 Skip_Counter 0 Exec_Master_Log_Pos # @@ -157,7 +157,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -201,7 +201,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3 Skip_Counter 0 Exec_Master_Log_Pos # @@ -219,7 +219,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -263,7 +263,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246 Skip_Counter 0 Exec_Master_Log_Pos # @@ -281,7 +281,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -324,7 +324,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3 Skip_Counter 0 Exec_Master_Log_Pos # @@ -342,7 +342,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3; *** Drop t6 *** @@ -436,7 +436,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5 Skip_Counter 0 Exec_Master_Log_Pos # @@ -454,7 +454,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -497,7 +497,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252 Skip_Counter 0 Exec_Master_Log_Pos # @@ -515,7 +515,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; @@ -883,7 +883,7 @@ Replicate_Do_Table Replicate_Ignore_Table # Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table -Last_Errno 1534 +Last_Errno 1535 Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2 Skip_Counter 0 Exec_Master_Log_Pos # @@ -901,7 +901,7 @@ Seconds_Behind_Master # Master_SSL_Verify_Server_Cert No Last_IO_Errno # Last_IO_Error # -Last_SQL_Errno 1534 +Last_SQL_Errno 1535 Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2; START SLAVE; diff --git a/mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result b/mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result index abd5bad8e49..4db69a7dce3 100644 --- a/mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result +++ b/mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result @@ -370,6 +370,7 @@ C1 C2 1 3 2 6 3 9 +set @@global.slave_exec_mode= 'IDEMPOTENT'; --- on master: new values inserted --- INSERT INTO t7 VALUES (1,2), (2,4), (3,6); SELECT * FROM t7 ORDER BY C1; @@ -377,6 +378,7 @@ C1 C2 1 2 2 4 3 6 +set @@global.slave_exec_mode= default; --- on slave: old values should be overwritten by replicated values --- SELECT * FROM t7 ORDER BY C1; C1 C2 @@ -406,8 +408,10 @@ a b c 2 4 6 3 6 9 99 99 99 +set @@global.slave_exec_mode= 'IDEMPOTENT'; --- on master --- INSERT INTO t8 VALUES (2,4,8); +set @@global.slave_exec_mode= default; --- on slave --- SELECT * FROM t8 ORDER BY a; a b c @@ -426,10 +430,12 @@ START SLAVE; **** On Master **** INSERT INTO t1 VALUES ('K','K'), ('L','L'), ('M','M'); **** On Master **** +set @@global.slave_exec_mode= 'IDEMPOTENT'; DELETE FROM t1 WHERE C1 = 'L'; DELETE FROM t1; SELECT COUNT(*) FROM t1 ORDER BY c1,c2; COUNT(*) 0 +set @@global.slave_exec_mode= default; Last_SQL_Error 0 SELECT COUNT(*) FROM t1 ORDER BY c1,c2; diff --git a/mysql-test/suite/rpl_ndb/t/disabled.def b/mysql-test/suite/rpl_ndb/t/disabled.def index 3055a60f986..1b091bed214 100644 --- a/mysql-test/suite/rpl_ndb/t/disabled.def +++ b/mysql-test/suite/rpl_ndb/t/disabled.def @@ -11,13 +11,12 @@ ############################################################################## -rpl_ndb_2innodb : Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue -rpl_ndb_2myisam : Bug#29549 rpl_ndb_myisam2ndb,rpl_ndb_innodb2ndb failed on Solaris for pack_length issue -rpl_ndb_2other : BUG#21842 2007-08-30 tsmith test has never worked on bigendian (sol10-sparc-a, powermacg5 -rpl_ndb_dd_partitions : BUG#19259 2006-04-21 rpl_ndb_dd_partitions fails on s/AMD +rpl_ndb_2innodb : Bug #32648 Test failure between NDB Cluster and other engines +rpl_ndb_2myisam : Bug #32648 Test failure between NDB Cluster and other engines +rpl_ndb_2other : Bug #32648 Test failure between NDB Cluster and other engines rpl_ndb_ddl : BUG#28798 2007-05-31 lars Valgrind failure in NDB -rpl_ndb_mix_innodb : BUG#28123 rpl_ndb_mix_innodb.test casue slave to core on sol10-sparc-a rpl_ndb_extraColMaster : BUG#30854 : Tables name show as binary in slave err msg on vm-win2003-64-b and Solaris +rpl_ndb_mix_innodb : Bug #32720 Test rpl_ndb_mix_innodb fails on SPARC and PowerPC # the below testcase have been reworked to avoid the bug, test contains comment, keep bug open diff --git a/mysql-test/t/almost_full.test b/mysql-test/t/almost_full.test new file mode 100644 index 00000000000..5c67ab3c088 --- /dev/null +++ b/mysql-test/t/almost_full.test @@ -0,0 +1,41 @@ +# +# Some special cases with empty tables +# + +--disable_warnings +drop table if exists t1; +--enable_warnings + +set global myisam_data_pointer_size=2; +CREATE TABLE t1 (a int auto_increment primary key not null, b longtext) ENGINE=MyISAM; + +--disable_query_log +let $1= 303; +while ($1) +{ + INSERT INTO t1 SET b=repeat('a',200); + dec $1; +} +--enable_query_log + +DELETE FROM t1 WHERE a=1 or a=5; + +--error 1114 +INSERT INTO t1 SET b=repeat('a',600); +CHECK TABLE t1 EXTENDED; + +--error 1114 +UPDATE t1 SET b=repeat('a', 800) where a=10; +CHECK TABLE t1 EXTENDED; + +INSERT INTO t1 SET b=repeat('a',400); +CHECK TABLE t1 EXTENDED; + +DELETE FROM t1 WHERE a=2 or a=6; +UPDATE t1 SET b=repeat('a', 600) where a=11; +CHECK TABLE t1 EXTENDED; +drop table t1; + +set global myisam_data_pointer_size=default; + +# End of 4.1 tests diff --git a/mysql-test/t/archive.test b/mysql-test/t/archive.test index e0a2e877af5..f8eff10e30a 100644 --- a/mysql-test/t/archive.test +++ b/mysql-test/t/archive.test @@ -1567,3 +1567,25 @@ insert into t1 set a=''; insert into t1 set a='a'; check table t1 extended; drop table t1; + +# +# BUG#31036 - Using order by with archive table crashes server +# + +CREATE TABLE t1(a VARCHAR(510)) ENGINE = ARCHIVE; + +let $bug31036=41; +--disable_query_log +while($bug31036) +{ + INSERT INTO t1(a) VALUES (REPEAT('a', 510)); + dec $bug31036; +} +--enable_query_log +INSERT INTO t1(a) VALUES (''); + +--disable_result_log +SELECT * FROM t1 ORDER BY a; +--enable_result_log + +DROP TABLE t1; diff --git a/mysql-test/t/bigint.test b/mysql-test/t/bigint.test index da10f4efa61..5a589816dcd 100644 --- a/mysql-test/t/bigint.test +++ b/mysql-test/t/bigint.test @@ -113,6 +113,15 @@ t2.value64=t1.value64; drop table t1, t2; +# Test for BUG#30069, can't handle bigint -9223372036854775808 on +# x86_64, with some GCC versions and optimizations. + +create table t1 (sint64 bigint not null); +insert into t1 values (-9223372036854775808); +select * from t1; + +drop table t1; + # End of 4.1 tests # diff --git a/mysql-test/t/cast.test b/mysql-test/t/cast.test index 5563e260a06..50865215944 100644 --- a/mysql-test/t/cast.test +++ b/mysql-test/t/cast.test @@ -246,4 +246,26 @@ INSERT INTO t1(d1) VALUES ('2007-07-19 08:30:00'), (NULL), SELECT cast(date(d1) as signed) FROM t1; drop table t1; +# +# Bug #31990: MINUTE() and SECOND() return bogus results when used on a DATE +# + +# Show that HH:MM:SS of a DATE are 0, and that it's the same for columns +# and typecasts (NULL in, NULL out). +CREATE TABLE t1 (f1 DATE); +INSERT INTO t1 VALUES ('2007-07-19'), (NULL); +SELECT HOUR(f1), + MINUTE(f1), + SECOND(f1) FROM t1; +SELECT HOUR(CAST('2007-07-19' AS DATE)), + MINUTE(CAST('2007-07-19' AS DATE)), + SECOND(CAST('2007-07-19' AS DATE)); +SELECT HOUR(CAST(NULL AS DATE)), + MINUTE(CAST(NULL AS DATE)), + SECOND(CAST(NULL AS DATE)); +SELECT HOUR(NULL), + MINUTE(NULL), + SECOND(NULL); +DROP TABLE t1; + --echo End of 5.0 tests diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index b837f53a17f..de2033321b9 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -547,6 +547,14 @@ select quote(name) from bug20536; drop table bug20536; +# +# BUG#31159 - fulltext search on ucs2 column crashes server +# +CREATE TABLE t1(a TEXT CHARSET ucs2 COLLATE ucs2_unicode_ci); +INSERT INTO t1 VALUES('abcd'); +SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abcd' IN BOOLEAN MODE); +DROP TABLE t1; + --echo End of 4.1 tests # diff --git a/mysql-test/t/federated_server.test b/mysql-test/t/federated_server.test index 87b67720104..444285ac045 100644 --- a/mysql-test/t/federated_server.test +++ b/mysql-test/t/federated_server.test @@ -2,7 +2,7 @@ # if federated can utilise the servers table # should work with embedded server after mysqltest is fixed -- source include/not_embedded.inc --- source include/federated.inc; +-- source include/federated.inc -- source include/big_test.inc connection slave; @@ -282,6 +282,18 @@ drop user guest_select@localhost; drop table federated.t1; drop server 's1'; +# +# Bug#30671 - ALTER SERVER causes the server to crash +# +create server 's1' foreign data wrapper 'mysql' options (port 3306); +alter server 's1' options + (host 'localhost', database '', user '', + password '', socket '', owner '', port 3306); +# The next statement would crash unpatched server +alter server 's1' options + (host 'localhost', database 'database1', user '', + password '', socket '', owner '', port 3306); +drop server 's1'; --echo # End of 5.1 tests diff --git a/mysql-test/t/fulltext.test b/mysql-test/t/fulltext.test index 1f8a3b82cfd..64f77b4f0b7 100644 --- a/mysql-test/t/fulltext.test +++ b/mysql-test/t/fulltext.test @@ -400,6 +400,14 @@ SELECT * FROM t1 WHERE MATCH(a) AGAINST('test'); DROP TABLE t1; # +# BUG#11392 - fulltext search bug +# +CREATE TABLE t1(a TEXT); +INSERT INTO t1 VALUES(' aaaaa aaaa'); +SELECT * FROM t1 WHERE MATCH(a) AGAINST ('"aaaa"' IN BOOLEAN MODE); +DROP TABLE t1; + +# # BUG#29445 - match ... against () never returns # CREATE TABLE t1(a VARCHAR(20), FULLTEXT(a)); diff --git a/mysql-test/t/func_gconcat.test b/mysql-test/t/func_gconcat.test index 4c5dd6467bd..322be2b7b8e 100644 --- a/mysql-test/t/func_gconcat.test +++ b/mysql-test/t/func_gconcat.test @@ -590,4 +590,13 @@ select group_concat(distinct a, c order by a desc, c desc) from t1; drop table t1; +# +# Bug#30897 GROUP_CONCAT returns extra comma on empty fields +# +create table t1 (f1 char(20)); +insert into t1 values (''),(''); +select group_concat(distinct f1) from t1; +select group_concat(f1) from t1; +drop table t1; + --echo End of 5.0 tests diff --git a/mysql-test/t/func_group.test b/mysql-test/t/func_group.test index e1ec6906cd6..8beed28cfbf 100644 --- a/mysql-test/t/func_group.test +++ b/mysql-test/t/func_group.test @@ -880,5 +880,33 @@ SELECT 1 FROM t1 GROUP BY (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) ); DROP TABLE t1; +# +# Bug #30715: Assertion failed: item_field->field->real_maybe_null(), file +# .\opt_sum.cc, line +# + +CREATE TABLE t1 (a int, b date NOT NULL, KEY k1 (a,b)); +SELECT MIN(b) FROM t1 WHERE a=1 AND b>'2007-08-01'; +DROP TABLE t1; + +# +# Bug #31794: no syntax error on SELECT id FROM t HAVING count(*)>2; +# + +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3),(4); + +SET SQL_MODE=ONLY_FULL_GROUP_BY; +--error ER_MIX_OF_GROUP_FUNC_AND_FIELDS +SELECT a FROM t1 HAVING COUNT(*)>2; +--error ER_MIX_OF_GROUP_FUNC_AND_FIELDS +SELECT COUNT(*), a FROM t1; + +SET SQL_MODE=DEFAULT; +SELECT a FROM t1 HAVING COUNT(*)>2; +SELECT COUNT(*), a FROM t1; + +DROP TABLE t1; + ### --echo End of 5.0 tests diff --git a/mysql-test/t/func_str.test b/mysql-test/t/func_str.test index 0ba0ba30cd2..b6da14211ae 100644 --- a/mysql-test/t/func_str.test +++ b/mysql-test/t/func_str.test @@ -782,6 +782,19 @@ explain extended select encode(f1,'zxcv') as 'enc' from t1; explain extended select decode(f1,'zxcv') as 'enc' from t1; drop table t1; +# +# Bug #31758 inet_ntoa, oct, crashes server with null + filesort +# +create table t1 (a bigint not null)engine=myisam; +insert into t1 set a = 1024*1024*1024*4; +delete from t1 order by (inet_ntoa(a)) desc limit 10; +drop table t1; +create table t1 (a char(36) not null)engine=myisam; +insert ignore into t1 set a = ' '; +insert ignore into t1 set a = ' '; +select * from t1 order by (oct(a)); +drop table t1; + --echo End of 4.1 tests # diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test index 2ea7aed6bd2..94c2b463aaa 100644 --- a/mysql-test/t/group_by.test +++ b/mysql-test/t/group_by.test @@ -790,6 +790,41 @@ drop table t1; SET SQL_MODE = ''; # + +# +# Bug #32202: ORDER BY not working with GROUP BY +# + +CREATE TABLE t1( + id INT AUTO_INCREMENT PRIMARY KEY, + c1 INT NOT NULL, + c2 INT NOT NULL, + UNIQUE KEY (c2,c1)); + +INSERT INTO t1(c1,c2) VALUES (5,1), (4,1), (3,5), (2,3), (1,3); + +# Show that the test cases from the bug report pass +SELECT * FROM t1 ORDER BY c1; +SELECT * FROM t1 GROUP BY id ORDER BY c1; + +# Show that DESC is handled correctly +SELECT * FROM t1 GROUP BY id ORDER BY id DESC; + +# Show that results are correctly ordered when ORDER BY fields +# are a subset of GROUP BY ones +SELECT * FROM t1 GROUP BY c2 ,c1, id ORDER BY c2, c1; +SELECT * FROM t1 GROUP BY c2, c1, id ORDER BY c2 DESC, c1; +SELECT * FROM t1 GROUP BY c2, c1, id ORDER BY c2 DESC, c1 DESC; + +# Show that results are correctly ordered when GROUP BY fields +# are a subset of ORDER BY ones +SELECT * FROM t1 GROUP BY c2 ORDER BY c2, c1; +SELECT * FROM t1 GROUP BY c2 ORDER BY c2 DESC, c1; +SELECT * FROM t1 GROUP BY c2 ORDER BY c2 DESC, c1 DESC; + +DROP TABLE t1; + +--echo End of 5.0 tests # Bug #21174: Index degrades sort performance and # optimizer does not honor IGNORE INDEX. # a.k.a WL3527. diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test index 1987d9d5773..2dd19a94758 100644 --- a/mysql-test/t/information_schema.test +++ b/mysql-test/t/information_schema.test @@ -807,7 +807,8 @@ DROP FUNCTION func2; select column_type, group_concat(table_schema, '.', table_name), count(*) as num from information_schema.columns where table_schema='information_schema' and -(column_type = 'varchar(7)' or column_type = 'varchar(20)') +(column_type = 'varchar(7)' or column_type = 'varchar(20)' + or column_type = 'varchar(27)') group by column_type order by num; # @@ -1232,4 +1233,9 @@ select * from `information_schema`.`TRIGGERS` where `EVENT_OBJECT_TABLE` = NULL; select * from `information_schema`.`VIEWS` where `TABLE_SCHEMA` = NULL; select * from `information_schema`.`VIEWS` where `TABLE_NAME` = NULL; +# +# Bug#31630 debug assert with explain extended select ... from i_s +# +explain extended select 1 from information_schema.tables; + --echo End of 5.1 tests. diff --git a/mysql-test/t/innodb-semi-consistent-master.opt b/mysql-test/t/innodb-semi-consistent-master.opt new file mode 100644 index 00000000000..2746e4e184e --- /dev/null +++ b/mysql-test/t/innodb-semi-consistent-master.opt @@ -0,0 +1 @@ +--innodb_locks_unsafe_for_binlog=true --innodb_lock_wait_timeout=2 diff --git a/mysql-test/t/innodb-semi-consistent.test b/mysql-test/t/innodb-semi-consistent.test new file mode 100644 index 00000000000..7a9231b508f --- /dev/null +++ b/mysql-test/t/innodb-semi-consistent.test @@ -0,0 +1,46 @@ +-- source include/not_embedded.inc +-- source include/have_innodb.inc + +# basic tests of semi-consistent reads + +connect (a,localhost,root,,); +connect (b,localhost,root,,); +connection a; +set session transaction isolation level read committed; +create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1; +insert into t1 values (1),(2),(3),(4),(5),(6),(7); +set autocommit=0; +# this should lock the entire table +select * from t1 where a=3 lock in share mode; +connection b; +set session transaction isolation level read committed; +set autocommit=0; +-- error ER_LOCK_WAIT_TIMEOUT +update t1 set a=10 where a=5; +connection a; +commit; +connection b; +update t1 set a=10 where a=5; +connection a; +-- error ER_LOCK_WAIT_TIMEOUT +select * from t1 where a=2 for update; +# this should lock the records (1),(2) +select * from t1 where a=2 limit 1 for update; +connection b; +update t1 set a=11 where a=6; +-- error ER_LOCK_WAIT_TIMEOUT +update t1 set a=12 where a=2; +-- error ER_LOCK_WAIT_TIMEOUT +update t1 set a=13 where a=1; +connection a; +commit; +connection b; +update t1 set a=14 where a=1; +commit; +connection a; +select * from t1; +drop table t1; + +connection default; +disconnect a; +disconnect b; diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test index c7fe033fd36..8fdbbfcde79 100644 --- a/mysql-test/t/innodb.test +++ b/mysql-test/t/innodb.test @@ -327,39 +327,6 @@ select * from t2; drop table t1,t2; # -# Search on unique key -# - -CREATE TABLE t1 ( - id int(11) NOT NULL auto_increment, - ggid varchar(32) binary DEFAULT '' NOT NULL, - email varchar(64) DEFAULT '' NOT NULL, - passwd varchar(32) binary DEFAULT '' NOT NULL, - PRIMARY KEY (id), - UNIQUE ggid (ggid) -) ENGINE=innodb; - -insert into t1 (ggid,passwd) values ('test1','xxx'); -insert into t1 (ggid,passwd) values ('test2','yyy'); --- error ER_DUP_ENTRY -insert into t1 (ggid,passwd) values ('test2','this will fail'); --- error ER_DUP_ENTRY -insert into t1 (ggid,id) values ('this will fail',1); - -select * from t1 where ggid='test1'; -select * from t1 where passwd='xxx'; -select * from t1 where id=2; - -replace into t1 (ggid,id) values ('this will work',1); -replace into t1 (ggid,passwd) values ('test2','this will work'); --- error ER_DUP_ENTRY -update t1 set id=100,ggid='test2' where id=1; -select * from t1; -select * from t1 where id=1; -select * from t1 where id=999; -drop table t1; - -# # ORDER BY on not primary key # @@ -2355,6 +2322,67 @@ CREATE TABLE t1 ( c29 CHAR(255), c30 CHAR(255), c31 CHAR(255), c32 CHAR(255) ) ENGINE = InnoDB; +# +# Bug #31860 InnoDB assumes AUTOINC values can only be positive. +# +DROP TABLE IF EXISTS t1; +CREATE TABLE t1( + id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY + ) ENGINE=InnoDB; +INSERT INTO t1 VALUES(-10); +SELECT * FROM t1; +# +# NOTE: The server really needs to be restarted at this point +# for the test to be useful. +# +# Without the fix InnoDB would trip over an assertion here. +INSERT INTO t1 VALUES(NULL); +# The next value should be 1 and not -9 or a -ve number +SELECT * FROM t1; +DROP TABLE t1; + +# +# Bug #21409 Incorrect result returned when in READ-COMMITTED with +# query_cache ON +# +CONNECT (c1,localhost,root,,); +CONNECT (c2,localhost,root,,); +CONNECTION c1; +SET TX_ISOLATION='read-committed'; +SET AUTOCOMMIT=0; +DROP TABLE IF EXISTS t1, t2; +CREATE TABLE t1 ( a int ) ENGINE=InnoDB; +CREATE TABLE t2 LIKE t1; +SELECT * FROM t2; +CONNECTION c2; +SET TX_ISOLATION='read-committed'; +SET AUTOCOMMIT=0; +INSERT INTO t1 VALUES (1); +COMMIT; +CONNECTION c1; +SELECT * FROM t1 WHERE a=1; +DISCONNECT c1; +DISCONNECT c2; +CONNECT (c1,localhost,root,,); +CONNECT (c2,localhost,root,,); +CONNECTION c1; +SET TX_ISOLATION='read-committed'; +SET AUTOCOMMIT=0; +SELECT * FROM t2; +CONNECTION c2; +SET TX_ISOLATION='read-committed'; +SET AUTOCOMMIT=0; +INSERT INTO t1 VALUES (2); +COMMIT; +CONNECTION c1; +# The result set below should be the same for both selects +SELECT * FROM t1 WHERE a=2; +SELECT * FROM t1 WHERE a=2; +DROP TABLE t1; +DROP TABLE t2; +DISCONNECT c1; +DISCONNECT c2; + ####################################################################### # # # Please, DO NOT TOUCH this file as well as the innodb.result file. # diff --git a/mysql-test/t/innodb_autoinc_lock_mode_zero-master.opt b/mysql-test/t/innodb_autoinc_lock_mode_zero-master.opt new file mode 100644 index 00000000000..fad0da2ac2e --- /dev/null +++ b/mysql-test/t/innodb_autoinc_lock_mode_zero-master.opt @@ -0,0 +1 @@ +--innodb-autoinc-lock-mode=0 diff --git a/mysql-test/t/innodb_autoinc_lock_mode_zero.test b/mysql-test/t/innodb_autoinc_lock_mode_zero.test new file mode 100644 index 00000000000..96f748673c0 --- /dev/null +++ b/mysql-test/t/innodb_autoinc_lock_mode_zero.test @@ -0,0 +1,44 @@ +# This test runs with old-style locking, as: +# --innodb-autoinc-lock-mode=0 + +-- source include/have_innodb.inc + +--disable_warnings +drop table if exists t1; +--enable_warnings + + +# +# Search on unique key +# + +CREATE TABLE t1 ( + id int(11) NOT NULL auto_increment, + ggid varchar(32) binary DEFAULT '' NOT NULL, + email varchar(64) DEFAULT '' NOT NULL, + passwd varchar(32) binary DEFAULT '' NOT NULL, + PRIMARY KEY (id), + UNIQUE ggid (ggid) +) ENGINE=innodb; + +insert into t1 (ggid,passwd) values ('test1','xxx'); +insert into t1 (ggid,passwd) values ('test2','yyy'); +-- error ER_DUP_ENTRY +insert into t1 (ggid,passwd) values ('test2','this will fail'); +-- error ER_DUP_ENTRY +insert into t1 (ggid,id) values ('this will fail',1); + +select * from t1 where ggid='test1'; +select * from t1 where passwd='xxx'; +select * from t1 where id=2; + +replace into t1 (ggid,id) values ('this will work',1); +replace into t1 (ggid,passwd) values ('test2','this will work'); +-- error ER_DUP_ENTRY +update t1 set id=100,ggid='test2' where id=1; +select * from t1; +select * from t1 where id=1; +select * from t1 where id=999; +drop table t1; + +--echo End of tests diff --git a/mysql-test/t/log_state.test b/mysql-test/t/log_state.test index c67da261ef1..f7795e49b37 100644 --- a/mysql-test/t/log_state.test +++ b/mysql-test/t/log_state.test @@ -179,6 +179,42 @@ SET GLOBAL READ_ONLY = OFF; SET GLOBAL general_log = @old_general_log_state; SET GLOBAL slow_query_log = @old_slow_log_state; +# +# Bug #29131: SHOW VARIABLES reports variable 'log' but SET doesn't recognize it +# + +SET @old_general_log_state = @@global.general_log; +SET @old_slow_log_state = @@global.slow_query_log; + +SHOW VARIABLES LIKE 'general_log'; +SHOW VARIABLES LIKE 'log'; +SELECT @@general_log, @@log; +SET GLOBAL log = 0; +SHOW VARIABLES LIKE 'general_log'; +SHOW VARIABLES LIKE 'log'; +SELECT @@general_log, @@log; +SET GLOBAL general_log = 1; +SHOW VARIABLES LIKE 'general_log'; +SHOW VARIABLES LIKE 'log'; +SELECT @@general_log, @@log; + +SHOW VARIABLES LIKE 'slow_query_log'; +SHOW VARIABLES LIKE 'log_slow_queries'; +SELECT @@slow_query_log, @@log_slow_queries; +SET GLOBAL log_slow_queries = 0; +SHOW VARIABLES LIKE 'slow_query_log'; +SHOW VARIABLES LIKE 'log_slow_queries'; +SELECT @@slow_query_log, @@log_slow_queries; +SET GLOBAL slow_query_log = 1; +SHOW VARIABLES LIKE 'slow_query_log'; +SHOW VARIABLES LIKE 'log_slow_queries'; +SELECT @@slow_query_log, @@log_slow_queries; + +SET GLOBAL general_log = @old_general_log_state; +SET GLOBAL slow_query_log = @old_slow_log_state; + +--echo End of 5.1 tests + --enable_ps_protocol # diff --git a/mysql-test/t/log_tables.test b/mysql-test/t/log_tables.test index 12098b4543b..f02138fb30b 100644 --- a/mysql-test/t/log_tables.test +++ b/mysql-test/t/log_tables.test @@ -924,3 +924,34 @@ set global general_log = off; select command_type, argument from mysql.general_log; deallocate prepare long_query; set global general_log = @old_general_log_state; + +# +# Bug #31700: thd->examined_row_count not incremented for 'const' type queries +# +SET @old_slow_log_state = @@global.slow_query_log; + +SET SESSION long_query_time = 0; +SET GLOBAL slow_query_log = ON; +FLUSH LOGS; +TRUNCATE TABLE mysql.slow_log; + +# Let there be three columns, unique, non-unique, and non-indexed: +CREATE TABLE t1 (f1 SERIAL,f2 INT, f3 INT, PRIMARY KEY(f1), KEY(f2)); +INSERT INTO t1 VALUES (1,1,1); +INSERT INTO t1 VALUES (2,2,2); +INSERT INTO t1 VALUES (3,3,3); +INSERT INTO t1 VALUES (4,4,4); + +SELECT SQL_NO_CACHE 'Bug#31700 - SCAN',f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f3=4; +SELECT SQL_NO_CACHE 'Bug#31700 - KEY', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f2=3; +SELECT SQL_NO_CACHE 'Bug#31700 - PK', f1,f2,f3,SLEEP(1.1) FROM t1 WHERE f1=2; + +--replace_column 1 TIMESTAMP +SELECT start_time, rows_examined, rows_sent, sql_text FROM mysql.slow_log WHERE sql_text LIKE '%Bug#31700%' ORDER BY start_time; + +DROP TABLE t1; + +TRUNCATE TABLE mysql.slow_log; + +SET GLOBAL slow_query_log = @old_slow_log_state; +SET SESSION long_query_time =@old_long_query_time; diff --git a/mysql-test/t/lowercase_view.test b/mysql-test/t/lowercase_view.test index e9cc26bec18..d6612b3e6b9 100644 --- a/mysql-test/t/lowercase_view.test +++ b/mysql-test/t/lowercase_view.test @@ -138,3 +138,26 @@ create view v1Aa as select AaA.col1 from t1Aa as AaA; show create view v1AA; drop view v1AA; drop table t1Aa; + + +# +# Bug #31562: HAVING and lower case +# + +CREATE TABLE t1 (a int, b int); + +select X.a from t1 AS X group by X.b having (X.a = 1); +select X.a from t1 AS X group by X.b having (x.a = 1); +select X.a from t1 AS X group by X.b having (x.b = 1); + +CREATE OR REPLACE VIEW v1 AS +select X.a from t1 AS X group by X.b having (X.a = 1); + +SHOW CREATE VIEW v1; + +SELECT * FROM v1; + +DROP VIEW v1; +DROP TABLE t1; + +--echo End of 5.0 tests. diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index b06fd536f45..6f24d84f4c0 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -1146,6 +1146,32 @@ ALTER TABLE t1 ENABLE KEYS; SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1; DROP TABLE t1; +# +# Bug#4692 - DISABLE/ENABLE KEYS waste a space +# +CREATE TABLE t1 (c1 INT, c2 INT, UNIQUE INDEX (c1), INDEX (c2)) ENGINE=MYISAM; +--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 # +SHOW TABLE STATUS LIKE 't1'; +INSERT INTO t1 VALUES (1,1); +--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 # +SHOW TABLE STATUS LIKE 't1'; +ALTER TABLE t1 DISABLE KEYS; +--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 # +SHOW TABLE STATUS LIKE 't1'; +ALTER TABLE t1 ENABLE KEYS; +--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 # +SHOW TABLE STATUS LIKE 't1'; +ALTER TABLE t1 DISABLE KEYS; +--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 # +SHOW TABLE STATUS LIKE 't1'; +ALTER TABLE t1 ENABLE KEYS; +--replace_column 6 # 7 # 8 # 10 # 11 # 12 # 13 # 14 # 15 # 16 # +SHOW TABLE STATUS LIKE 't1'; +#--exec ls -log var/master-data/test/t1.MYI +#--exec myisamchk -dvv var/master-data/test/t1.MYI +#--exec myisamchk -iev var/master-data/test/t1.MYI +DROP TABLE t1; + --echo End of 5.0 tests @@ -1256,3 +1282,4 @@ CHECK TABLE t1; DROP TABLE t1; --echo End of 5.1 tests + diff --git a/mysql-test/t/mysql.test b/mysql-test/t/mysql.test index a7c3eda92df..528337da77b 100644 --- a/mysql-test/t/mysql.test +++ b/mysql-test/t/mysql.test @@ -299,3 +299,21 @@ remove_file $MYSQLTEST_VARDIR/tmp/bug29323.sql; --disable_query_log --exec $MYSQL --server-arg=no-defaults test -e "quit" --enable_query_log + +# +# Bug #25146: Some warnings/errors not shown when using --show-warnings +# + +# This one should succeed with no warnings +--exec $MYSQL --show-warnings test -e "create table t1 (id int)" + +# This should succeed, with warnings about conversion from nonexistent engine +--exec $MYSQL --show-warnings test -e "create table t2 (id int) engine=nonexistent" + +# This should fail, with warnings as well +--error 1 +--exec $MYSQL --show-warnings test -e "create table t2 (id int) engine=nonexistent2" + +drop tables t1, t2; + +--echo End of tests diff --git a/mysql-test/t/mysql_comments.sql b/mysql-test/t/mysql_comments.sql new file mode 100644 index 00000000000..2497c35e465 --- /dev/null +++ b/mysql-test/t/mysql_comments.sql @@ -0,0 +1,218 @@ +##============================================================================ +## Notes +##============================================================================ + +# Test case for Bug#11230 + +# The point of this test is to make sure that '#', '-- ' and '/* ... */' +# comments, as well as empty lines, are sent from the client to the server. +# This is to ensure better error reporting, and to keep comments in the code +# for stored procedures / functions / triggers (Bug#11230). +# As a result, be careful when editing comments in this script, they do +# matter. +# +# Also, note that this is a script for **mysql**, not mysqltest. +# This is critical, as the mysqltest client interprets comments differently. + +##============================================================================ +## Setup +##============================================================================ + +## See mysql_comments.test for initial cleanup + +# Test tables +# +# t1 is reused throughout the file, and dropped at the end. +# +drop table if exists t1; +create table t1 ( + id char(16) not null default '', + data int not null +); + +##============================================================================ +## Comments outside statements +##============================================================================ + +# Ignored 1a +-- Ignored 1b +/* + Ignored 1c +*/ + +select 1; + +##============================================================================ +## Comments inside statements +##============================================================================ + +select # comment 1a +# comment 2a +-- comment 2b +/* + comment 2c +*/ +2 +; # not strictly inside, but on same line +# ignored + +##============================================================================ +## Comments inside functions +##============================================================================ + +drop function if exists foofct ; + +create function foofct (x char(20)) +returns char(20) +/* not inside the body yet */ +return +-- comment 1a +# comment 1b +/* comment 1c */ +x; # after body, on same line + +select foofct("call 1"); + +show create function foofct; +drop function foofct; + +delimiter | + +create function foofct(x char(20)) +returns char(20) +begin + -- comment 1a + # comment 1b + /* + comment 1c + */ + + -- empty line below + + -- empty line above + return x; +end| + +delimiter ; + +select foofct("call 2"); + +show create function foofct; +drop function foofct; + +##============================================================================ +## Comments inside stored procedures +##============================================================================ + +# Empty statement +drop procedure if exists empty; +create procedure empty() +begin +end; + +call empty(); +show create procedure empty; +drop procedure empty; + +drop procedure if exists foosp; + +## These comments are before the create, and will be lost +# Comment 1a +-- Comment 1b +/* + Comment 1c + */ +create procedure foosp() +/* Comment not quiet in the body yet */ + insert into test.t1 +## These comments are part of the procedure body, and should be kept. +# Comment 2a +-- Comment 2b +/* Comment 2c */ + -- empty line below + + -- empty line above + values ("foo", 42); # comment 3, still part of the body +## After the ';', therefore not part of the body +# comment 4a +-- Comment 4b +/* + Comment 4c + */ + +call foosp(); +select * from t1; +delete from t1; +show create procedure foosp; +drop procedure foosp; + +drop procedure if exists nicesp; + +delimiter | + +create procedure nicesp(a int) +begin + -- declare some variables here + declare b int; + declare c float; + + -- do more stuff here + -- commented nicely and so on + + -- famous last words ... +end| + +delimiter ; + +show create procedure nicesp; +drop procedure nicesp; + +##============================================================================ +## Comments inside triggers +##============================================================================ + +drop trigger if exists t1_empty; + +create trigger t1_empty after delete on t1 +for each row +begin +end; + +show create trigger t1_empty; + +drop trigger if exists t1_bi; + +delimiter | + +create trigger t1_bi before insert on t1 +for each row +begin +# comment 1a +-- comment 1b +/* + comment 1c +*/ + -- declare some variables here + declare b int; + declare c float; + + -- do more stuff here + -- commented nicely and so on + + -- famous last words ... + set NEW.data := 12; +end| + +delimiter ; + +show create trigger t1_bi; + +# also make sure the trigger still works +insert into t1(id) value ("trig"); +select * from t1; + +##============================================================================ +## Cleanup +##============================================================================ + +drop table t1; diff --git a/mysql-test/t/mysql_comments.test b/mysql-test/t/mysql_comments.test new file mode 100644 index 00000000000..1f997aeb1ab --- /dev/null +++ b/mysql-test/t/mysql_comments.test @@ -0,0 +1,37 @@ +# This test should work in embedded server after we fix mysqltest +-- source include/not_embedded.inc +###################### mysql_comments.test ############################# +# # +# Testing of comments handling by the command line client (mysql) # +# # +# Creation: # +# 2007-10-29 akopytov Implemented this test as a part of fixes for # +# bug #26215 and bug #11230 # +# # +######################################################################## + +# +# Bug #11230: Keeping comments when storing stored procedures +# + +# See the content of mysql_comments.sql +# Set the test database to a known state before running the tests. +--disable_warnings +drop table if exists t1; +drop function if exists foofct; +drop procedure if exists empty; +drop procedure if exists foosp; +drop procedure if exists nicesp; +drop trigger if exists t1_empty; +drop trigger if exists t1_bi; +--enable_warnings + +# Test without comments +--echo "Pass 1 : --disable-comments" +--exec $MYSQL --disable-comments test 2>&1 < "./t/mysql_comments.sql" + +# Test with comments +--echo "Pass 2 : --enable-comments" +--exec $MYSQL --enable-comments test 2>&1 < "./t/mysql_comments.sql" + +--echo End of 5.0 tests diff --git a/mysql-test/t/mysqlbinlog.test b/mysql-test/t/mysqlbinlog.test index de34b85cf03..18b08cf11d6 100644 --- a/mysql-test/t/mysqlbinlog.test +++ b/mysql-test/t/mysqlbinlog.test @@ -240,6 +240,10 @@ let $c= `select $a=$b`; --echo $c drop table t1; +echo shell> mysqlbinlog std_data/corrupt-relay-bin.000624 > var/tmp/bug31793.sql; +error 1; +exec $MYSQL_BINLOG $MYSQL_TEST_DIR/std_data/corrupt-relay-bin.000624 > $MYSQLTEST_VARDIR/tmp/bug31793.sql; + --echo End of 5.0 tests # diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index 158e8a769bd..0e4e9989ffa 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -1788,6 +1788,18 @@ TRUNCATE mysql.event; --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug29938.sql SHOW EVENTS; + +--echo # +--echo # Bug#31113 mysqldump 5.1 can't handle a dash ("-") in database names +--echo # +create database `test-database`; +use `test-database`; +create table test (a int); +--exec $MYSQL_DUMP --compact --opt --quote-names test-database +drop database `test-database`; +use test; + + --echo # --echo # End of 5.1 tests --echo # diff --git a/mysql-test/t/outfile_loaddata.test b/mysql-test/t/outfile_loaddata.test new file mode 100644 index 00000000000..2f6ac998b3d --- /dev/null +++ b/mysql-test/t/outfile_loaddata.test @@ -0,0 +1,89 @@ +--disable_warnings +DROP TABLE IF EXISTS t1, t2; +--enable_warnings + +--echo # +--echo # Bug#31663 FIELDS TERMINATED BY special character +--echo # + +CREATE TABLE t1 (i1 int, i2 int, c1 VARCHAR(256), c2 VARCHAR(256)); +INSERT INTO t1 VALUES (101, 202, '-r-', '=raker='); + +--let $fields=* +--let $clauses=FIELDS TERMINATED BY 'raker' +--echo # $clauses, warning: + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT $fields INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' $clauses FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT LOAD_FILE('$MYSQLTEST_VARDIR/tmp/bug31663.txt') +--eval CREATE TABLE t2 SELECT $fields FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 $clauses +--eval SELECT $fields FROM t2 +--remove_file $MYSQLTEST_VARDIR/tmp/bug31663.txt +DROP TABLE t2; + +--let $fields=i1, i2 +--let $clauses=FIELDS TERMINATED BY 'r' +--echo # Only numeric fields, $clauses, no warnings: + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT $fields INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' $clauses FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT LOAD_FILE('$MYSQLTEST_VARDIR/tmp/bug31663.txt') +--eval CREATE TABLE t2 SELECT $fields FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 $clauses +--eval SELECT $fields FROM t2 +--remove_file $MYSQLTEST_VARDIR/tmp/bug31663.txt +DROP TABLE t2; + +--let $fields=* +--let $clauses=FIELDS TERMINATED BY '0' +--echo # $clauses, warning: + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT $fields INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' $clauses FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT LOAD_FILE('$MYSQLTEST_VARDIR/tmp/bug31663.txt') +--eval CREATE TABLE t2 SELECT $fields FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 $clauses +--eval SELECT $fields FROM t2 +--remove_file $MYSQLTEST_VARDIR/tmp/bug31663.txt +DROP TABLE t2; + +--let $fields=* +--let $clauses=FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0' +--echo # $clauses, warning: + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT $fields INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' $clauses FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT LOAD_FILE('$MYSQLTEST_VARDIR/tmp/bug31663.txt') +--eval CREATE TABLE t2 SELECT $fields FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 $clauses +--eval SELECT $fields FROM t2 +--remove_file $MYSQLTEST_VARDIR/tmp/bug31663.txt +DROP TABLE t2; + +--let $fields=c1, c2 +--let $clauses=FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY '0' +--echo # Only string fields, $clauses, no warnings: + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT $fields INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' $clauses FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval SELECT LOAD_FILE('$MYSQLTEST_VARDIR/tmp/bug31663.txt') +--eval CREATE TABLE t2 SELECT $fields FROM t1 +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/bug31663.txt' INTO TABLE t2 $clauses +--eval SELECT $fields FROM t2 +--remove_file $MYSQLTEST_VARDIR/tmp/bug31663.txt +DROP TABLE t2; + +DROP TABLE t1; + +--echo # End of 5.0 tests. diff --git a/mysql-test/t/partition.test b/mysql-test/t/partition.test index a1d01b9ae19..65e78a5e740 100644 --- a/mysql-test/t/partition.test +++ b/mysql-test/t/partition.test @@ -15,6 +15,50 @@ drop table if exists t1; --enable_warnings # +# Bug #30695: An apostrophe ' in the comment of the ADD PARTITION causes the Server to crash. +# +# To verify the fix for crashing (on unix-type OS) +# uncomment the exec and error rows! + +CREATE TABLE t1 ( + d DATE NOT NULL +) +PARTITION BY RANGE( YEAR(d) ) ( + PARTITION p0 VALUES LESS THAN (1960), + PARTITION p1 VALUES LESS THAN (1970), + PARTITION p2 VALUES LESS THAN (1980), + PARTITION p3 VALUES LESS THAN (1990) +); + +ALTER TABLE t1 ADD PARTITION ( +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 +SELECT * FROM t1 LIMIT 1; + +DROP TABLE t1; + +# +# Bug 30878: crashing when alter an auto_increment non partitioned +# table to partitioned + +create table t1 (id int auto_increment, s1 int, primary key (id)); + +insert into t1 values (null,1); +insert into t1 values (null,6); + +select * from t1; + +alter table t1 partition by range (id) ( + partition p0 values less than (3), + partition p1 values less than maxvalue +); + +drop table t1; + +# # Bug 15890: Strange number of partitions accepted # -- error ER_PARSE_ERROR @@ -1466,4 +1510,25 @@ PARTITION BY RANGE (b) ( show create table t1; drop table t1, t2; +# +# Bug #32067 Partitions: crash with timestamp column +# this bug occurs randomly on some UPDATE statement +# with the '1032: Can't find record in 't1'' error + +create table t1 + (s1 timestamp on update current_timestamp, s2 int) + partition by key(s1) partitions 3; + +insert into t1 values (null,null); +--disable_query_log +let $cnt= 1000; +while ($cnt) +{ + update t1 set s2 = 1; + update t1 set s2 = 2; + dec $cnt; +} +--enable_query_log + +drop table t1; --echo End of 5.1 tests diff --git a/mysql-test/t/partition_02myisam.test b/mysql-test/t/partition_02myisam.test deleted file mode 100644 index 107d0b89cea..00000000000 --- a/mysql-test/t/partition_02myisam.test +++ /dev/null @@ -1,25 +0,0 @@ -############################################### -# # -# Partition tests MyISAM tables # -# # -############################################### - -# -# NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE ! -# NON STORAGE SPECIFIC TESTCASES SHOULD BE ADDED IN -# THE SOURCED FIELS ONLY. -# - -# Storage engine to be tested -let $engine= 'MYISAM'; -eval SET SESSION storage_engine=$engine; - - -# Other storage engine <> storage engine to be tested -let $engine_other= 'MEMORY'; -# number of rows for the INSERT/UPDATE/DELETE/SELECT experiments -# on partioned tables -# Attention: In the moment the result files fit to @max_row = 200 only -SET @max_row = 200; - --- source include/partition_1.inc diff --git a/mysql-test/t/partition_datatype.test b/mysql-test/t/partition_datatype.test new file mode 100644 index 00000000000..61d3cb42c7b --- /dev/null +++ b/mysql-test/t/partition_datatype.test @@ -0,0 +1,213 @@ +# +# Simple test for the partition storage engine +# with most datatypes and null / not null +# as partition by key +# Created to verify the fix for Bug#31705 +# Partitions: crash if varchar length > 65530 +# +-- source include/have_partition.inc + +--disable_warnings +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; +create table t1 (a tinyint not null) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +drop table t1; +create table t1 (a smallint not null) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +drop table t1; +create table t1 (a mediumint not null) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +drop table t1; +create table t1 (a int not null) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +drop table t1; +create table t1 (a bigint not null) partition by key (a); +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; +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; +drop table t1; +create table t1 (a decimal not null) partition by key (a); +insert into t1 values (2.1); +select * from t1 where a = 2.1; +drop table t1; +create table t1 (a date not null) partition by key (a); +insert into t1 values ('2001-01-01'); +select * from t1 where a = '2001-01-01'; +drop table t1; +create table t1 (a datetime not null) partition by key (a); +insert into t1 values ('2001-01-01 01:02:03'); +select * from t1 where a = '2001-01-01 01:02:03'; +drop table t1; +create table t1 (a timestamp not null) partition by key (a); +insert into t1 values ('2001-01-01 01:02:03'); +select * from t1 where a = '2001-01-01 01:02:03'; +drop table t1; +create table t1 (a time not null) partition by key (a); +insert into t1 values ('01:02:03'); +select * from t1 where a = '01:02:03'; +drop table t1; +create table t1 (a year not null) partition by key (a); +insert into t1 values ('2001'); +select * from t1 where a = '2001'; +drop table t1; +create table t1 (a varchar(10) character set utf8 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a varchar(300) character set utf8 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a varchar(10) character set latin1 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a varchar(300) character set latin1 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a char(10) character set utf8 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a char(10) character set latin1 not null) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a enum('y','n') not null) partition by key (a); +insert into t1 values ('y'); +select * from t1 where a = 'y'; +drop table t1; +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; +create table t1 (a tinyint) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +drop table t1; +create table t1 (a smallint) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +drop table t1; +create table t1 (a mediumint) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +drop table t1; +create table t1 (a int) partition by key (a); +insert into t1 values (2); +select * from t1 where a = 2; +drop table t1; +create table t1 (a bigint) partition by key (a); +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; +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; +drop table t1; +create table t1 (a decimal) partition by key (a); +insert into t1 values (2.1); +select * from t1 where a = 2.1; +drop table t1; +create table t1 (a date) partition by key (a); +insert into t1 values ('2001-01-01'); +select * from t1 where a = '2001-01-01'; +drop table t1; +create table t1 (a datetime) partition by key (a); +insert into t1 values ('2001-01-01 01:02:03'); +select * from t1 where a = '2001-01-01 01:02:03'; +drop table t1; +create table t1 (a timestamp null) partition by key (a); +insert into t1 values ('2001-01-01 01:02:03'); +select * from t1 where a = '2001-01-01 01:02:03'; +drop table t1; +create table t1 (a time) partition by key (a); +insert into t1 values ('01:02:03'); +select * from t1 where a = '01:02:03'; +drop table t1; +create table t1 (a year) partition by key (a); +insert into t1 values ('2001'); +select * from t1 where a = '2001'; +drop table t1; +create table t1 (a varchar(10) character set utf8) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a varchar(300) character set utf8) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a varchar(10) character set latin1) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a varchar(300) character set latin1) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a char(10) character set utf8) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a char(10) character set latin1) partition by key (a); +insert into t1 values ('abc'); +select * from t1 where a = 'abc'; +drop table t1; +create table t1 (a enum('y','n')) partition by key (a); +insert into t1 values ('y'); +select * from t1 where a = 'y'; +drop table t1; +create table t1 (a set('y','n')) partition by key (a); +insert into t1 values ('y'); +select * from t1 where a = 'y'; +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 like 'aaa%'; +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 like 'aaa%'; +drop table t1; +create table t1 (a varchar(65533) not null) partition by key (a); +insert into t1 values ('aaaa'); +select * from t1 where a = 'aaa%'; +drop table t1; +-- error ER_TOO_BIG_ROWSIZE +create table t1 (a varchar(65533)) partition by key (a); +-- error ER_TOO_BIG_ROWSIZE +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); diff --git a/mysql-test/t/partition_error.test b/mysql-test/t/partition_error.test index 5fc2097cc52..c9b95fc1664 100644 --- a/mysql-test/t/partition_error.test +++ b/mysql-test/t/partition_error.test @@ -9,6 +9,19 @@ drop table if exists t1; --enable_warnings # +# Bug 29368: +# Incorrect error, 1467, for syntax error when creating partition +--error ER_PARTITION_REQUIRES_VALUES_ERROR +CREATE TABLE t1 ( + a int +) +PARTITION BY RANGE (a) +( + PARTITION p0 VALUES LESS THAN (1), + PARTITION p1 VALU ES LESS THAN (2) +); + +# # Partition by key stand-alone error # --error 1064 diff --git a/mysql-test/t/partition_hash.test b/mysql-test/t/partition_hash.test index 98add060a76..52caaa8c8e9 100644 --- a/mysql-test/t/partition_hash.test +++ b/mysql-test/t/partition_hash.test @@ -144,3 +144,13 @@ select * from t1 where c3 between '2002-01-01' and '2002-12-31'; drop table t1; +# +# Bug#31210 - INSERT DELAYED crashes server when used on partitioned table +# +CREATE TABLE t1 (c1 INT) ENGINE=MyISAM PARTITION BY HASH(c1) PARTITIONS 1; +# The test succeeds in an embedded server because normal insert is done. +# The test fails in a normal server with "engine doesn't have this option". +--error 0, ER_ILLEGAL_HA +INSERT DELAYED INTO t1 VALUES (1); +DROP TABLE t1; + diff --git a/mysql-test/t/partition_innodb.test b/mysql-test/t/partition_innodb.test index 4a50332b3df..6b73d0b2c5e 100644 --- a/mysql-test/t/partition_innodb.test +++ b/mysql-test/t/partition_innodb.test @@ -142,3 +142,15 @@ PARTITION BY KEY(a) PARTITIONS 10; INSERT INTO t1 VALUES(1),(2); SELECT COUNT(*) FROM t1; DROP TABLE t1; + +# +# Bug #31893 Partitions: crash if subpartitions and engine change +# +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) + subpartition by key (char_column) subpartitions 2 + (PARTITION p1 VALUES LESS THAN (5) ENGINE = myisam); +show create table t1; +drop table t1; diff --git a/mysql-test/t/partition_mgm.test b/mysql-test/t/partition_mgm.test index a06f8d1aee5..68da4a5b390 100644 --- a/mysql-test/t/partition_mgm.test +++ b/mysql-test/t/partition_mgm.test @@ -22,17 +22,18 @@ drop table t1; CREATE TABLE t1 (f_date DATE, f_varchar VARCHAR(30)) PARTITION BY HASH(YEAR(f_date)) PARTITIONS 2; SHOW CREATE TABLE t1; - ---replace_result $MYSQLTEST_VARDIR "hello" ---exec ls $MYSQLTEST_VARDIR/master-data/test/t1#* ---replace_result $MYSQLTEST_VARDIR "hello" ---exec ls $MYSQLTEST_VARDIR/master-data/test/t1.* +-- 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/master-data/test/t1.frm +-- file_exists $MYSQLTEST_VARDIR/master-data/test/t1.par ALTER TABLE t1 COALESCE PARTITION 1; SHOW CREATE TABLE t1; ---replace_result $MYSQLTEST_VARDIR "hello" ---exec ls $MYSQLTEST_VARDIR/master-data/test/t1#* ---replace_result $MYSQLTEST_VARDIR "hello" ---exec ls $MYSQLTEST_VARDIR/master-data/test/t1.* +-- 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.frm +-- file_exists $MYSQLTEST_VARDIR/master-data/test/t1.par drop table t1; # # Bug 20767: REORGANIZE partition crashes diff --git a/mysql-test/t/partition_symlink.test b/mysql-test/t/partition_symlink.test new file mode 100644 index 00000000000..ab779ec2b68 --- /dev/null +++ b/mysql-test/t/partition_symlink.test @@ -0,0 +1,121 @@ +# Test that must have symlink. eg. using DATA/INDEX DIR +# (DATA/INDEX DIR requires symlinks) +-- source include/have_partition.inc +-- source include/have_symlink.inc +# remove the not_windows line after fixing bug#30459 +-- source include/not_windows.inc +-- disable_warnings +DROP TABLE IF EXISTS t1; +DROP DATABASE IF EXISTS mysqltest2; +-- enable_warnings + +# +# Bug 32091: Security breach via directory changes +# +# The below test shows that a pre-existing table mysqltest2.t1 cannot be +# replaced by a user with no rights in 'mysqltest2'. The altered table +# test.t1 will be altered (remove partitioning) into the test directory +# and having its partitions removed from the mysqltest2 directory. +# (the partitions data files are named <tablename>#P#<partname>.MYD +# and will not collide with a non partitioned table's data files.) +# NOTE: the privileges on files and directories are the same for all +# database users in mysqld, though mysqld enforces privileges on +# the database and table levels which in turn maps to directories and +# files, but not the other way around (any db-user can use any +# 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 +-- echo # Creating two non colliding tables mysqltest2.t1 and test.t1 +-- echo # test.t1 have partitions in mysqltest2-directory! +-- echo # user root: + CREATE USER mysqltest_1@localhost; + CREATE DATABASE mysqltest2; + USE mysqltest2; + CREATE TABLE t1 (a INT); + INSERT INTO t1 VALUES (0); +connect(con1,localhost,mysqltest_1,,); +-- echo # user mysqltest_1: + USE test; + -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR + eval CREATE TABLE t1 (a INT) + PARTITION BY LIST (a) ( + PARTITION p0 VALUES IN (0) + DATA DIRECTORY '$MYSQLTEST_VARDIR/master-data/mysqltest2' + INDEX DIRECTORY '$MYSQLTEST_VARDIR/master-data/mysqltest2', + PARTITION p1 VALUES IN (1) + DATA DIRECTORY '$MYSQLTEST_VARDIR/master-data/test' + INDEX DIRECTORY '$MYSQLTEST_VARDIR/master-data/test', + PARTITION p2 VALUES IN (2) + ); + -- echo # without the patch for bug#32091 this would create + -- echo # files mysqltest2/t1.MYD + .MYI and possible overwrite + -- echo # the mysqltest2.t1 table (depending on bug#32111) + -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR + ALTER TABLE t1 REMOVE PARTITIONING; + INSERT INTO t1 VALUES (1); + SELECT * FROM t1; +connection default; +-- echo # user root: + USE mysqltest2; + FLUSH TABLES; + -- echo # if the patch works, this should be different + -- echo # and before the patch they were the same! + SELECT * FROM t1; + USE test; + SELECT * FROM t1; + DROP TABLE t1; + DROP DATABASE mysqltest2; +# The below test shows that a pre-existing partition can not be +# destroyed by a new partition from another table. +# (Remember that a table or partition that uses the DATA/INDEX DIR +# is symlinked and thus has +# 1. the real file in the DATA/INDEX DIR and +# 2. a symlink in its default database directory pointing to +# the real file. +# So it is using/blocking 2 files in (in 2 different directories +-- echo # test that symlinks can not overwrite files when CREATE TABLE +-- echo # user root: + CREATE DATABASE mysqltest2; + USE mysqltest2; + -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR + eval CREATE TABLE t1 (a INT) + PARTITION BY LIST (a) ( + PARTITION p0 VALUES IN (0) + DATA DIRECTORY '$MYSQLTEST_VARDIR/master-data/mysqltest2' + INDEX DIRECTORY '$MYSQLTEST_VARDIR/master-data/mysqltest2', + PARTITION p1 VALUES IN (1) + DATA DIRECTORY '$MYSQLTEST_VARDIR/master-data/test' + INDEX DIRECTORY '$MYSQLTEST_VARDIR/master-data/test' + ); +connection con1; +-- echo # user mysqltest_1: + USE test; + -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR + -- error 1,1 + eval CREATE TABLE t1 (a INT) + PARTITION BY LIST (a) ( + PARTITION p0 VALUES IN (0) + DATA DIRECTORY '$MYSQLTEST_VARDIR/master-data/mysqltest2' + INDEX DIRECTORY '$MYSQLTEST_VARDIR/master-data/mysqltest2', + PARTITION p1 VALUES IN (1) + DATA DIRECTORY '$MYSQLTEST_VARDIR/master-data/test' + INDEX DIRECTORY '$MYSQLTEST_VARDIR/master-data/test' + ); + -- replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR + -- error 1,1 + eval CREATE TABLE t1 (a INT) + PARTITION BY LIST (a) ( + PARTITION p0 VALUES IN (0) + DATA DIRECTORY '$MYSQLTEST_VARDIR/master-data/test' + INDEX DIRECTORY '$MYSQLTEST_VARDIR/master-data/test', + PARTITION p1 VALUES IN (1) + DATA DIRECTORY '$MYSQLTEST_VARDIR/master-data/mysqltest2' + INDEX DIRECTORY '$MYSQLTEST_VARDIR/master-data/mysqltest2' + ); +connection default; +-- echo # user root (cleanup): + DROP DATABASE mysqltest2; + USE test; + DROP USER mysqltest_1@localhost; + disconnect con1; + + diff --git a/mysql-test/t/plugin.test b/mysql-test/t/plugin.test index fb6d5febe45..d8d6d069676 100644 --- a/mysql-test/t/plugin.test +++ b/mysql-test/t/plugin.test @@ -24,3 +24,18 @@ UNINSTALL PLUGIN EXAMPLE; --error 1305 UNINSTALL PLUGIN non_exist; + + +--echo # +--echo # Bug#32034: check_func_enum() does not check correct values but set it +--echo # to impossible int val +--echo # + +INSTALL PLUGIN example SONAME 'ha_example.so'; + +SET GLOBAL example_enum_var= e1; +SET GLOBAL example_enum_var= e2; +--error 1231 +SET GLOBAL example_enum_var= impossible; + +UNINSTALL PLUGIN example; diff --git a/mysql-test/t/rpl_drop_view.test b/mysql-test/t/rpl_drop_view.test new file mode 100644 index 00000000000..8d826b8214d --- /dev/null +++ b/mysql-test/t/rpl_drop_view.test @@ -0,0 +1,31 @@ +# test case for bug#30998 +# Drop View breaks replication if view does not exist +# + +source include/master-slave.inc; +--disable_warnings +drop table if exists t1, t2; +drop view if exists v1, v2, v3, not_exist_view; +--enable_warnings +create table t1 (a int); +create table t2 (b int); +create table t3 (c int); +create view v1 as select * from t1; +create view v2 as select * from t2; +create view v3 as select * from t3; +--error 1051 +drop view not_exist_view; +--error 1051 +drop view v1, not_exist_view; +--error 1146 +select * from v1; +drop view v2, v3; +save_master_pos; +connection slave; +sync_with_master; +--error 1146 +select * from v1; +--error 1146 +select * from v2; +--error 1146 +select * from v3; diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test index 71a7caba399..65e7f212732 100644 --- a/mysql-test/t/select.test +++ b/mysql-test/t/select.test @@ -2361,6 +2361,27 @@ insert into t1 values (0xfffffffffffffffff, 0xfffffffffffffffff), select hex(a), hex(b) from t1; drop table t1; +# +# Bug #32103: optimizer crash when join on int and mediumint with variable in +# where clause +# + +CREATE TABLE t1 (c0 int); +CREATE TABLE t2 (c0 int); + +# We need any variable that: +# 1. has integer type, +# 2. can be used with the "@@name" syntax +# 3. available in every server build +INSERT INTO t1 VALUES(@@connect_timeout); +INSERT INTO t2 VALUES(@@connect_timeout); + +# We only need to ensure 1 row is returned to validate the results +--replace_column 1 X 2 X +SELECT * FROM t1 JOIN t2 ON t1.c0 = t2.c0 WHERE (t1.c0 <=> @@connect_timeout); + +DROP TABLE t1, t2; + --echo End of 4.1 tests # @@ -2743,14 +2764,14 @@ create table t1(f1 int, f2 date); insert into t1 values(1,'2005-01-01'),(2,'2005-09-01'),(3,'2005-09-30'), (4,'2005-10-01'),(5,'2005-12-30'); # should return all records -select * from t1 where f2 >= 0; -select * from t1 where f2 >= '0000-00-00'; +select * from t1 where f2 >= 0 order by f2; +select * from t1 where f2 >= '0000-00-00' order by f2; # should return 4,5 -select * from t1 where f2 >= '2005-09-31'; -select * from t1 where f2 >= '2005-09-3a'; +select * from t1 where f2 >= '2005-09-31' order by f2; +select * from t1 where f2 >= '2005-09-3a' order by f2; # should return 1,2,3 -select * from t1 where f2 <= '2005-09-31'; -select * from t1 where f2 <= '2005-09-3a'; +select * from t1 where f2 <= '2005-09-31' order by f2; +select * from t1 where f2 <= '2005-09-3a' order by f2; drop table t1; # @@ -3455,24 +3476,132 @@ DROP TABLE t1; # --disable_ps_protocol - SELECT 1 AS ` `; SELECT 1 AS ` `; SELECT 1 AS ` x`; +--enable_ps_protocol -CREATE VIEW v1 AS SELECT 1 AS ` `; -SELECT `` FROM v1; - -CREATE VIEW v2 AS SELECT 1 AS ` `; -SELECT `` FROM v2; - -CREATE VIEW v3 AS SELECT 1 AS ` x`; -SELECT `x` FROM v3; - -DROP VIEW v1, v2, v3; +--error 1166 +CREATE VIEW v1 AS SELECT 1 AS ``; ---enable_ps_protocol +--error 1166 +CREATE VIEW v1 AS SELECT 1 AS ` `; +--error 1166 +CREATE VIEW v1 AS SELECT 1 AS ` `; + +--error 1166 +CREATE VIEW v1 AS SELECT (SELECT 1 AS ` `); + +CREATE VIEW v1 AS SELECT 1 AS ` x`; +SELECT `x` FROM v1; + +--error 1166 +ALTER VIEW v1 AS SELECT 1 AS ` `; + +DROP VIEW v1; + +# +# Bug#31800: Date comparison fails with timezone and slashes for greater +# than comparison +# + +# On DATETIME-like literals with trailing garbage, BETWEEN fudged in a +# DATETIME comparator, while greater/less-than used bin-string comparisons. +# Should correctly be compared as DATE or DATETIME, but throw a warning: + +select str_to_date('2007-10-09','%Y-%m-%d') between '2007/10/01 00:00:00 GMT' + and '2007/10/20 00:00:00 GMT'; +select str_to_date('2007-10-09','%Y-%m-%d') > '2007/10/01 00:00:00 GMT-6'; +select str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/2000:00:00 GMT-6'; + +# We have all we need -- and trailing garbage: +# (leaving out a leading zero in first example to prove it's a +# value-comparison, not a string-comparison!) +select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-1 00:00:00 GMT-6'; +select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 x00:00:00 GMT-6'; +select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:00:00 GMT-6'; +select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 00:x00:00 GMT-6'; +# no time at all: +select str_to_date('2007-10-01','%Y-%m-%d %H:%i:%s') = '2007-10-01 x12:34:56 GMT-6'; +# partial time: +select str_to_date('2007-10-01 12:34:00','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6'; +# fail, different second part: +select str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34x:56 GMT-6'; +# correct syntax, no trailing nonsense -- this one must throw no warning: +select str_to_date('2007-10-01 12:34:56','%Y-%m-%d %H:%i:%s') = '2007-10-01 12:34:56'; +# no warning, but failure (different hour parts): +select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-01 12:00:00'; +# succeed: +select str_to_date('2007-10-01 12','%Y-%m-%d %H') = '2007-10-01 12:00:00'; +# succeed, but warn for "trailing garbage" (":34"): +select str_to_date('2007-10-01 12:34','%Y-%m-%d %H') = '2007-10-01 12:00:00'; +# invalid date (Feb 30) succeeds +select str_to_date('2007-02-30 12:34','%Y-%m-%d %H:%i') = '2007-02-30 12:34'; +# 0-day for both, just works in default SQL mode. +select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34'; +# 0-day, succeed +select str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01 00:00:00' + and '2007/10/20 00:00:00'; +set SQL_MODE=TRADITIONAL; +# 0-day throws warning in traditional mode, and fails +select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34'; +select str_to_date('2007-10-01 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34'; +# different code-path: get_datetime_value() with 0-day +select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-01 12:34'; +select str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01' + and '2007/10/20'; +set SQL_MODE=DEFAULT; +select str_to_date('2007-10-00','%Y-%m-%d') between '' and '2007/10/20'; +select str_to_date('','%Y-%m-%d') between '2007/10/01' and '2007/10/20'; +select str_to_date('','%Y-%m-%d %H:%i') = '2007-10-01 12:34'; +select str_to_date(NULL,'%Y-%m-%d %H:%i') = '2007-10-01 12:34'; +select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = ''; + +select str_to_date('1','%Y-%m-%d') = '1'; +select str_to_date('1','%Y-%m-%d') = '1'; +select str_to_date('','%Y-%m-%d') = ''; + +# these three should work! +select str_to_date('1000-01-01','%Y-%m-%d') between '0000-00-00' and NULL; +select str_to_date('1000-01-01','%Y-%m-%d') between NULL and '2000-00-00'; +select str_to_date('1000-01-01','%Y-%m-%d') between NULL and NULL; + +# +# Bug #30666: Incorrect order when using range conditions on 2 tables or more +# + +CREATE TABLE t1 (c11 INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t2 (c21 INT UNSIGNED NOT NULL, + c22 INT DEFAULT NULL, + KEY(c21, c22)); +CREATE TABLE t3 (c31 INT UNSIGNED NOT NULL DEFAULT 0, + c32 INT DEFAULT NULL, + c33 INT NOT NULL, + c34 INT UNSIGNED DEFAULT 0, + KEY (c33, c34, c32)); + +INSERT INTO t1 values (),(),(),(),(); +INSERT INTO t2 SELECT a.c11, b.c11 FROM t1 a, t1 b; +INSERT INTO t3 VALUES (1, 1, 1, 0), + (2, 2, 0, 0), + (3, 3, 1, 0), + (4, 4, 0, 0), + (5, 5, 1, 0); + +# Show that ORDER BY produces the correct results order +SELECT c32 FROM t1, t2, t3 WHERE t1.c11 IN (1, 3, 5) AND + t3.c31 = t1.c11 AND t2.c21 = t1.c11 AND + t3.c33 = 1 AND t2.c22 in (1, 3) + ORDER BY c32; + +# Show that ORDER BY DESC produces the correct results order +SELECT c32 FROM t1, t2, t3 WHERE t1.c11 IN (1, 3, 5) AND + t3.c31 = t1.c11 AND t2.c21 = t1.c11 AND + t3.c33 = 1 AND t2.c22 in (1, 3) + ORDER BY c32 DESC; + +DROP TABLE t1, t2, t3; ########################################################################### --echo diff --git a/mysql-test/t/skip_grants.test b/mysql-test/t/skip_grants.test index 5e0fc65bc34..018366f705f 100644 --- a/mysql-test/t/skip_grants.test +++ b/mysql-test/t/skip_grants.test @@ -122,3 +122,15 @@ select count(*) from information_schema.COLUMN_PRIVILEGES; select count(*) from information_schema.SCHEMA_PRIVILEGES; select count(*) from information_schema.TABLE_PRIVILEGES; select count(*) from information_schema.USER_PRIVILEGES; + +# +# Bug #32020: loading udfs while --skip-grant-tables is enabled causes out of +# memory errors +# + +--error ER_CANT_INITIALIZE_UDF +CREATE FUNCTION a RETURNS STRING SONAME ''; +--error ER_SP_DOES_NOT_EXIST +DROP FUNCTION a; + +--echo End of 5.0 tests diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 95514fd773e..df51239b256 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -2987,6 +2987,63 @@ SELECT (SELECT SUM(t1.a) FROM t2 WHERE a!=0) FROM t1; SELECT (SELECT SUM(t1.a) FROM t2 WHERE a=1) FROM t1; DROP TABLE t1,t2; +# +# Bug #31884: Assertion + crash in subquery in the SELECT clause. +# + +CREATE TABLE t1 (a1 INT, a2 INT); +CREATE TABLE t2 (b1 INT, b2 INT); + +INSERT INTO t1 VALUES (100, 200); +INSERT INTO t1 VALUES (101, 201); +INSERT INTO t2 VALUES (101, 201); +INSERT INTO t2 VALUES (103, 203); + +SELECT ((a1,a2) IN (SELECT * FROM t2 WHERE b2 > 0)) IS NULL FROM t1; +DROP TABLE t1, t2; + +# +# Bug #28076: inconsistent binary/varbinary comparison +# + +CREATE TABLE t1 (s1 BINARY(5), s2 VARBINARY(5)); +INSERT INTO t1 VALUES (0x41,0x41), (0x42,0x42), (0x43,0x43); + +SELECT s1, s2 FROM t1 WHERE s2 IN (SELECT s1 FROM t1); +SELECT s1, s2 FROM t1 WHERE (s2, 10) IN (SELECT s1, 10 FROM t1); + +CREATE INDEX I1 ON t1 (s1); +CREATE INDEX I2 ON t1 (s2); + +SELECT s1, s2 FROM t1 WHERE s2 IN (SELECT s1 FROM t1); +SELECT s1, s2 FROM t1 WHERE (s2, 10) IN (SELECT s1, 10 FROM t1); + +TRUNCATE t1; +INSERT INTO t1 VALUES (0x41,0x41); +SELECT * FROM t1 WHERE s1 = (SELECT s2 FROM t1); + +DROP TABLE t1; + +CREATE TABLE t1 (a1 VARBINARY(2) NOT NULL DEFAULT '0', PRIMARY KEY (a1)); +CREATE TABLE t2 (a2 BINARY(2) default '0', INDEX (a2)); +CREATE TABLE t3 (a3 BINARY(2) default '0'); +INSERT INTO t1 VALUES (1),(2),(3),(4); +INSERT INTO t2 VALUES (1),(2),(3); +INSERT INTO t3 VALUES (1),(2),(3); +SELECT LEFT(t2.a2, 1) FROM t2,t3 WHERE t3.a3=t2.a2; +SELECT t1.a1, t1.a1 in (SELECT t2.a2 FROM t2,t3 WHERE t3.a3=t2.a2) FROM t1; +DROP TABLE t1,t2,t3; + +CREATE TABLE t1 (a1 BINARY(3) PRIMARY KEY, b1 VARBINARY(3)); +CREATE TABLE t2 (a2 VARBINARY(3) PRIMARY KEY); +CREATE TABLE t3 (a3 VARBINARY(3) PRIMARY KEY); +INSERT INTO t1 VALUES (1,10), (2,20), (3,30), (4,40); +INSERT INTO t2 VALUES (2), (3), (4), (5); +INSERT INTO t3 VALUES (10), (20), (30); +SELECT LEFT(t1.a1,1) FROM t1,t3 WHERE t1.b1=t3.a3; +SELECT a2 FROM t2 WHERE t2.a2 IN (SELECT t1.a1 FROM t1,t3 WHERE t1.b1=t3.a3); +DROP TABLE t1, t2, t3; + --echo End of 5.0 tests. # diff --git a/mysql-test/t/symlink.test b/mysql-test/t/symlink.test index 15f50b11e73..f339b29c83a 100644 --- a/mysql-test/t/symlink.test +++ b/mysql-test/t/symlink.test @@ -121,6 +121,18 @@ show create table t1; drop table t1; # +# BUG#32111 - Security Breach via DATA/INDEX DIRECORY and RENAME TABLE +# +--replace_result $MYSQLTEST_VARDIR TEST_DIR +eval CREATE TABLE t1(a INT) +DATA DIRECTORY='$MYSQLTEST_VARDIR/master-data/mysql' +INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data/mysql'; +--replace_result $MYSQLTEST_VARDIR TEST_DIR +--error 1 +RENAME TABLE t1 TO user; +DROP TABLE t1; + +# # Test specifying DATA DIRECTORY that is the same as what would normally # have been chosen. (Bug #8707) # diff --git a/mysql-test/t/trigger.test b/mysql-test/t/trigger.test index 9f4634e1e17..1c98a0f8d29 100644 --- a/mysql-test/t/trigger.test +++ b/mysql-test/t/trigger.test @@ -2246,3 +2246,15 @@ select * from table_25411_a; drop table table_25411_a; drop table table_25411_b; +# +# Bug #31866: MySQL Server crashes on SHOW CREATE TRIGGER statement +# + +--disable-warnings +DROP TRIGGER IF EXISTS trg; +--enable-warnings + +--error ER_TRG_DOES_NOT_EXIST +SHOW CREATE TRIGGER trg; + +--echo End of 5.1 tests. diff --git a/mysql-test/t/type_datetime.test b/mysql-test/t/type_datetime.test index fada7983c2c..747aab21ca6 100644 --- a/mysql-test/t/type_datetime.test +++ b/mysql-test/t/type_datetime.test @@ -155,13 +155,13 @@ set @@sql_mode='ansi,traditional'; insert into t1 values ('2007-03-23 13:49:38','2007-03-23 13:49:38'); insert into t1 set dt='2007-03-23 13:49:38',da=dt; # Test error handling ---error 1292 +--error ER_TRUNCATED_WRONG_VALUE insert into t1 values ('2007-03-32','2007-03-23 13:49:38'); select * from t1; drop table t1; ---error 1067 +--error ER_INVALID_DEFAULT create table t1 (da date default '1962-03-32 23:33:34', dt datetime default '1962-03-03'); ---error 1067 +--error ER_INVALID_DEFAULT create table t1 (t time default '916:00:00 a'); set @@sql_mode= @org_mode; @@ -169,6 +169,19 @@ set @@sql_mode= @org_mode; # # Bug#27590: Wrong DATE/DATETIME comparison. # +## The following sub test will fail (difference to expected result) if the +## select curdate() < now(), f1 < now(), cast(f1 as date) < now() from t1; +## runs exact at midnight ('00:00:00'). +## ( Bug#29290 type_datetime.test failure in 5.1 ) +## Therefore we sleep a bit if we are too close to midnight. +## The complete test itself needs around 1 second. +## Therefore a time_distance to midnight of 5 seconds should be sufficient. +if (`SELECT CURTIME() > SEC_TO_TIME(24 * 3600 - 5)`) +{ + # We are here when CURTIME() is between '23:59:56' and '23:59:59'. + # So a sleep time of 5 seconds brings us between '00:00:01' and '00:00:04'. + --real_sleep 5 +} create table t1 (f1 date, f2 datetime, f3 timestamp); insert into t1(f1) values(curdate()); select curdate() < now(), f1 < now(), cast(f1 as date) < now() from t1; diff --git a/mysql-test/t/type_decimal.test b/mysql-test/t/type_decimal.test index 4d61350a613..807d1e6b01e 100644 --- a/mysql-test/t/type_decimal.test +++ b/mysql-test/t/type_decimal.test @@ -425,5 +425,57 @@ insert into t1 values (-0.123456,0.123456); select group_concat(f1),group_concat(f2) from t1; drop table t1; ---echo End of 5.0 tests +# +# BUG#31450 "Query causes error 1048" +# +create table t1 ( + ua_id decimal(22,0) not null, + ua_invited_by_id decimal(22,0) default NULL, + primary key(ua_id) +); +insert into t1 values (123, NULL), (456, NULL); +--echo this must not produce error 1048: +select * from t1 where ua_invited_by_id not in (select ua_id from t1); + +drop table t1; + +# +# Bug #30889: filesort and order by with float/numeric crashes server +# +--disable_warnings +DROP TABLE IF EXISTS t3; +DROP TABLE IF EXISTS t4; +--enable_warnings +CREATE TABLE t1( a NUMERIC, b INT ); +INSERT INTO t1 VALUES (123456, 40), (123456, 40); +SELECT TRUNCATE( a, b ) AS c FROM t1 ORDER BY c; +SELECT ROUND( a, b ) AS c FROM t1 ORDER BY c; +SELECT ROUND( a, 100 ) AS c FROM t1 ORDER BY c; + +CREATE TABLE t2( a NUMERIC, b INT ); +INSERT INTO t2 VALUES (123456, 100); +SELECT TRUNCATE( a, b ) AS c FROM t2 ORDER BY c; +SELECT ROUND( a, b ) AS c FROM t2 ORDER BY c; + +CREATE TABLE t3( a DECIMAL, b INT ); +INSERT INTO t3 VALUES (123456, 40), (123456, 40); +SELECT TRUNCATE( a, b ) AS c FROM t3 ORDER BY c; +SELECT ROUND( a, b ) AS c FROM t3 ORDER BY c; +SELECT ROUND( a, 100 ) AS c FROM t3 ORDER BY c; + +CREATE TABLE t4( a DECIMAL, b INT ); +INSERT INTO t4 VALUES (123456, 40), (123456, 40); +SELECT TRUNCATE( a, b ) AS c FROM t4 ORDER BY c; +SELECT ROUND( a, b ) AS c FROM t4 ORDER BY c; +SELECT ROUND( a, 100 ) AS c FROM t4 ORDER BY c; + +delete from t1; +INSERT INTO t1 VALUES (1234567890, 20), (999.99, 5); +show create table t1; + +select round(a,b) as c from t1 order by c; + +DROP TABLE t1, t2, t3, t4; + +--echo End of 5.0 tests diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test index 4a161ea3725..c1580390f63 100644 --- a/mysql-test/t/variables.test +++ b/mysql-test/t/variables.test @@ -161,7 +161,7 @@ select * from information_schema.session_variables where variable_name like 'net set net_buffer_length=1; show variables like 'net_buffer_length'; select * from information_schema.session_variables where variable_name like 'net_buffer_length'; ---warning 1292 +#warning 1292 set net_buffer_length=2000000000; show variables like 'net_buffer_length'; select * from information_schema.session_variables where variable_name like 'net_buffer_length'; diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt index 6b24165686a..60e75c96b75 100755 --- a/mysys/CMakeLists.txt +++ b/mysys/CMakeLists.txt @@ -29,7 +29,7 @@ SET(MYSYS_SOURCES array.c charset-def.c charset.c checksum.c default.c default_ errors.c hash.c list.c md5.c mf_brkhant.c mf_cache.c mf_dirname.c mf_fn_ext.c mf_format.c mf_getdate.c mf_iocache.c mf_iocache2.c mf_keycache.c mf_keycaches.c mf_loadpath.c mf_pack.c mf_path.c mf_qsort.c mf_qsort2.c - mf_radix.c mf_same.c mf_sort.c mf_soundex.c mf_strip.c mf_tempdir.c + mf_radix.c mf_same.c mf_sort.c mf_soundex.c mf_strip.c mf_arr_appstr.c mf_tempdir.c mf_tempfile.c mf_unixpath.c mf_wcomp.c mf_wfile.c mulalloc.c my_access.c my_aes.c my_alarm.c my_alloc.c my_append.c my_bit.c my_bitmap.c my_chsize.c my_clock.c my_compress.c my_conio.c my_copy.c my_crc32.c my_create.c my_delete.c diff --git a/mysys/Makefile.am b/mysys/Makefile.am index fca13ab52b8..f06d81da849 100644 --- a/mysys/Makefile.am +++ b/mysys/Makefile.am @@ -35,7 +35,7 @@ libmysys_a_SOURCES = my_init.c my_getwd.c mf_getdate.c my_mmap.c \ my_error.c errors.c my_div.c my_messnc.c \ mf_format.c mf_same.c mf_dirname.c mf_fn_ext.c \ my_symlink.c my_symlink2.c \ - mf_pack.c mf_unixpath.c mf_strip.c \ + mf_pack.c mf_unixpath.c mf_strip.c mf_arr_appstr.c \ mf_wcomp.c mf_wfile.c my_gethwaddr.c \ mf_qsort.c mf_qsort2.c mf_sort.c \ ptr_cmp.c mf_radix.c queues.c my_getncpus.c \ diff --git a/mysys/default.c b/mysys/default.c index 3cc5b08e77c..2758029ec12 100644 --- a/mysys/default.c +++ b/mysys/default.c @@ -47,7 +47,7 @@ char *my_defaults_extra_file=0; /* Which directories are searched for options (and in which order) */ -#define MAX_DEFAULT_DIRS 7 +#define MAX_DEFAULT_DIRS 6 const char *default_directories[MAX_DEFAULT_DIRS + 1]; #ifdef __WIN__ @@ -83,7 +83,22 @@ static int search_default_file_with_ext(Process_option_func func, void *func_ctx, const char *dir, const char *ext, const char *config_file, int recursion_level); -static void init_default_directories(); + + + +/** + Create the list of default directories. + + @details + On all systems, if a directory is already in the list, it will be moved + to the end of the list. This avoids reading defaults files multiple times, + while ensuring the correct precedence. + + @return void +*/ + +static void (*init_default_directories)(); + static char *remove_end_comment(char *ptr); @@ -922,6 +937,34 @@ void print_defaults(const char *conf_file, const char **groups) #include <help_end.h> +/* + This extra complexity is to avoid declaring 'rc' if it won't be + used. +*/ +#define ADD_DIRECTORY_INTERNAL(DIR) \ + array_append_string_unique((DIR), default_directories, \ + array_elements(default_directories)) +#ifdef DBUG_OFF +# define ADD_DIRECTORY(DIR) (void) ADD_DIRECTORY_INTERNAL(DIR) +#else +#define ADD_DIRECTORY(DIR) \ + do { \ + my_bool rc= ADD_DIRECTORY_INTERNAL(DIR); \ + DBUG_ASSERT(rc == FALSE); /* Success */ \ + } while (0) +#endif + + +#define ADD_COMMON_DIRECTORIES() \ + do { \ + char *env; \ + if ((env= getenv(STRINGIFY_ARG(DEFAULT_HOME_ENV)))) \ + ADD_DIRECTORY(env); \ + /* Placeholder for --defaults-extra-file=<path> */ \ + ADD_DIRECTORY(""); \ + } while (0) + + #ifdef __WIN__ /* This wrapper for GetSystemWindowsDirectory() will dynamically bind to the @@ -956,71 +999,33 @@ static size_t my_get_system_windows_directory(char *buffer, size_t size) } return count; } -#endif -/* - Create the list of default directories. +/** + Initialize default directories for Microsoft Windows - On Microsoft Windows, this is: - 1. C:/ + @details + 1. GetSystemWindowsDirectory() 2. GetWindowsDirectory() - 3. GetSystemWindowsDirectory() - 4. getenv(DEFAULT_HOME_ENV) - 5. Directory above where the executable is located - 6. "" - 7. --sysconfdir=<path> - - On Novell NetWare, this is: - 1. sys:/etc/ - 2. getenv(DEFAULT_HOME_ENV) - 3. "" - 4. --sysconfdir=<path> - - On OS/2, this is: - 1. getenv(ETC) - 2. /etc/ - 3. getenv(DEFAULT_HOME_ENV) - 4. "" - 5. "~/" - 6. --sysconfdir=<path> - - Everywhere else, this is: - 1. /etc/ - 2. /etc/mysql/ - 3. getenv(DEFAULT_HOME_ENV) - 4. "" - 5. "~/" - 6. --sysconfdir=<path> - - */ + 3. C:/ + 4. Directory above where the executable is located + 5. getenv(DEFAULT_HOME_ENV) + 6. --defaults-extra-file=<path> (run-time option) +*/ -static void init_default_directories() +static void init_default_directories_win() { - const char *env, **ptr= default_directories; + bzero((char *) default_directories, sizeof(default_directories)); -#ifdef __WIN__ - *ptr++= "C:/"; + if (my_get_system_windows_directory(shared_system_dir, + sizeof(shared_system_dir))) + ADD_DIRECTORY(shared_system_dir); if (GetWindowsDirectory(system_dir,sizeof(system_dir))) - *ptr++= (char*)&system_dir; - if (my_get_system_windows_directory(shared_system_dir, - sizeof(shared_system_dir)) && - strcmp(system_dir, shared_system_dir)) - *ptr++= (char *)&shared_system_dir; + ADD_DIRECTORY(system_dir); + + ADD_DIRECTORY("C:/"); -#elif defined(__NETWARE__) - *ptr++= "sys:/etc/"; -#else - *ptr++= "/etc/"; - *ptr++= "/etc/mysql/"; -#endif - if ((env= getenv(STRINGIFY_ARG(DEFAULT_HOME_ENV)))) - *ptr++= env; - *ptr++= ""; /* Place for defaults_extra_file */ -#if !defined(__WIN__) && !defined(__NETWARE__) - *ptr++= "~/";; -#elif defined(__WIN__) if (GetModuleFileName(NULL, config_dir, sizeof(config_dir))) { char *last= NULL, *end= strend(config_dir); @@ -1050,12 +1055,61 @@ static void init_default_directories() last= end; } } - *ptr++= (char *)&config_dir; + ADD_DIRECTORY(config_dir); } -#endif + + ADD_COMMON_DIRECTORIES(); +} + +static void (*init_default_directories)()= init_default_directories_win; + +#elif defined(__NETWARE__) + +/** + Initialize default directories for Novell Netware + + @details + 1. sys:/etc/ + 2. getenv(DEFAULT_HOME_ENV) + 3. --defaults-extra-file=<path> (run-time option) +*/ + +static void init_default_directories_netware() +{ + bzero((char *) default_directories, sizeof(default_directories)); + ADD_DIRECTORY("sys:/etc/"); + ADD_COMMON_DIRECTORIES(); +} + +static void (*init_default_directories)()= init_default_directories_netware; + +#else + +/** + Initialize default directories for Unix + + @details + 1. /etc/ + 2. /etc/mysql/ + 3. --sysconfdir=<path> (compile-time option) + 4. getenv(DEFAULT_HOME_ENV) + 5. --defaults-extra-file=<path> (run-time option) + 6. "~/" +*/ + +static void init_default_directories_unix() +{ + bzero((char *) default_directories, sizeof(default_directories)); + ADD_DIRECTORY("/etc/"); + ADD_DIRECTORY("/etc/mysql/"); #ifdef DEFAULT_SYSCONFDIR if (DEFAULT_SYSCONFDIR != "") - *ptr++= DEFAULT_SYSCONFDIR; + ADD_DIRECTORY(DEFAULT_SYSCONFDIR); #endif - *ptr= 0; /* end marker */ + ADD_COMMON_DIRECTORIES(); + ADD_DIRECTORY("~/"); } + +static void (*init_default_directories)()= init_default_directories_unix; + +#endif diff --git a/mysys/mf_arr_appstr.c b/mysys/mf_arr_appstr.c new file mode 100644 index 00000000000..1edbea9df4a --- /dev/null +++ b/mysys/mf_arr_appstr.c @@ -0,0 +1,61 @@ +/* Copyright (C) 2007 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#include "mysys_priv.h" +#include <m_string.h> /* strcmp() */ + + +/** + Append str to array, or move to the end if it already exists + + @param str String to be appended + @param array The array, terminated by a NULL element, all unused elements + pre-initialized to NULL + @param size Size of the array; array must be terminated by a NULL + pointer, so can hold size - 1 elements + + @retval FALSE Success + @retval TRUE Failure, array is full +*/ + +my_bool array_append_string_unique(const char *str, + const char **array, size_t size) +{ + const char **p; + /* end points at the terminating NULL element */ + const char **end= array + size - 1; + DBUG_ASSERT(*end == NULL); + + for (p= array; *p; ++p) + { + if (strcmp(*p, str) == 0) + break; + } + if (p >= end) + return TRUE; /* Array is full */ + + DBUG_ASSERT(*p == NULL || strcmp(*p, str) == 0); + + while (*(p + 1)) + { + *p= *(p + 1); + ++p; + } + + DBUG_ASSERT(p < end); + *p= str; + + return FALSE; /* Success */ +} diff --git a/mysys/my_symlink2.c b/mysys/my_symlink2.c index 2a46fb3abea..7c3ddbb911c 100644 --- a/mysys/my_symlink2.c +++ b/mysys/my_symlink2.c @@ -130,6 +130,7 @@ int my_rename_with_symlink(const char *from, const char *to, myf MyFlags) int was_symlink= (!my_disable_symlinks && !my_readlink(link_name, from, MYF(0))); int result=0; + int name_is_different; DBUG_ENTER("my_rename_with_symlink"); if (!was_symlink) @@ -138,6 +139,14 @@ int my_rename_with_symlink(const char *from, const char *to, myf MyFlags) /* Change filename that symlink pointed to */ strmov(tmp_name, to); fn_same(tmp_name,link_name,1); /* Copy dir */ + name_is_different= strcmp(link_name, tmp_name); + if (name_is_different && !access(tmp_name, F_OK)) + { + my_errno= EEXIST; + if (MyFlags & MY_WME) + my_error(EE_CANTCREATEFILE, MYF(0), tmp_name, EEXIST); + DBUG_RETURN(1); + } /* Create new symlink */ if (my_symlink(tmp_name, to, MyFlags)) @@ -149,7 +158,7 @@ int my_rename_with_symlink(const char *from, const char *to, myf MyFlags) the same basename and different directories. */ - if (strcmp(link_name, tmp_name) && my_rename(link_name, tmp_name, MyFlags)) + if (name_is_different && my_rename(link_name, tmp_name, MyFlags)) { int save_errno=my_errno; my_delete(to, MyFlags); /* Remove created symlink */ diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh index 6f147c45f3b..260c372c802 100644 --- a/scripts/mysql_install_db.sh +++ b/scripts/mysql_install_db.sh @@ -19,7 +19,7 @@ # All unrecognized arguments to this script are passed to mysqld. basedir="" -ldata="" +ldata="@localstatedir@" srcdir="" args="" @@ -31,7 +31,6 @@ force=0 in_rpm=0 ip_only=0 windows=0 -source_install=0 usage() { @@ -48,10 +47,10 @@ Usage: $0 [OPTIONS] --skip-name-resolve Use IP addresses rather than hostnames when creating grant table entries. This option can be useful if your DNS does not work. - --srcdir=path For internal use. The directory under which - mysql_install_db looks for support files such as the - error message file and the file for popoulating the - help tables. + --srcdir=path The path to the MySQL source directory. This option + uses the compiled binaries and support files within the + source tree, useful for if you don't want to install + MySQL yet and just want to create the system tables. --user=user_name The login username to use for running mysqld. Files and directories created by mysqld will be owned by this user. You must be root to use this option. By default @@ -121,13 +120,6 @@ parse_arguments() # package. windows=1 ;; - --source-install) - # This is used when you want to run mysqld directly from the - # source tree (for example when you are developing MySQL and - # only want to create the default tables but don't want to - # install mysqld yet. - source_install=1 ;; - *) if test -n "$pick_args" then @@ -155,41 +147,33 @@ find_in_basedir() file=$1; shift - base="$basedir" - if test -z "$base" - then - # Assume source installation if basedir is not given - base="." - fi - for dir in "$@" do - if test -f "$base/$dir/$file" + if test -f "$basedir/$dir/$file" then if test -n "$return_dir" then - echo "$base/$dir" + echo "$basedir/$dir" else - echo "$base/$dir/$file" + echo "$basedir/$dir/$file" fi break fi done } -missing_in_basedir() +cannot_find_file() { - if test -z "$basedir" - then - echo "FATAL ERROR: Could not find $* inside --basedir" - echo - echo "When using --basedir you must point either into a MySQL binary" - echo "distribution directory or a compiled tree previously populated" - echo "by 'make install'" - else - echo "FATAL ERROR: Can't find $*. Please specify your installation" - echo "directory with the '--basedir=' option." - fi + echo + echo "FATAL ERROR: Could not find $*" + echo + echo "If you compiled from source, you need to run 'make install' to" + echo "copy the software into the correct location ready for operation." + echo + echo "If you are using a binary release, you must either be at the top" + echo "level of the extracted archive, or pass the --basedir option" + echo "pointing to that location." + echo } # Ok, let's go. We first need to parse arguments which are required by @@ -197,23 +181,28 @@ missing_in_basedir() # the command line to add any extra bits that we need. parse_arguments PICK-ARGS-FROM-ARGV "$@" -# We can now find my_print_defaults, either in the supplied --basedir -# location or in the installed area. - -print_defaults=`find_in_basedir my_print_defaults bin extra` -if test -z "$print_defaults" +# +# We can now find my_print_defaults. This script supports: +# +# --srcdir=path pointing to compiled source tree +# --basedir=path pointing to installed binary location +# +# or default to compiled-in locations. +# +if test -n "$srcdir" +then + print_defaults="$srcdir/extra/my_print_defaults" +elif test -n "$basedir" then + print_defaults=`find_in_basedir my_print_defaults bin extra` +else print_defaults="@bindir@/my_print_defaults" - if ! test -x "$print_defaults" - then - echo "FATAL ERROR: Could not find $print_defaults" - echo - echo "If you are using a binary release, you must run this script from" - echo "within the directory the archive extracted into. If you compiled" - echo "MySQL yourself you must run 'make install' first or use" - echo "use --source-install --install-dir=xxx from the top source directory" - exit 1 - fi +fi + +if test ! -x "$print_defaults" +then + cannot_find_file "$print_defaults" + exit 1 fi # Now we can get arguments from the groups [mysqld] and [mysql_install_db] @@ -221,63 +210,33 @@ fi parse_arguments `$print_defaults $defaults mysqld mysql_install_db` parse_arguments PICK-ARGS-FROM-ARGV "$@" -# Path to MySQL installation directory -if test -z "$basedir" -a "$source_install" = 0 +# Configure paths to support files +if test -n "$srcdir" +then + basedir="$srcdir" + bindir="$srcdir/client" + extra_bindir="$srcdir/extra" + mysqld="$srcdir/sql/mysqld" + mysqld_opt="--language=$srcdir/sql/share/english" + pkgdatadir="$srcdir/scripts" + scriptdir="$srcdir/scripts" +elif test -n "$basedir" then + bindir="$basedir/bin" + extra_bindir="$bindir" + mysqld=`find_in_basedir mysqld libexec sbin bin` + pkgdatadir=`find_in_basedir --dir fill_help_tables.sql share share/mysql` + scriptdir="$basedir/scripts" +else basedir="@prefix@" bindir="@bindir@" extra_bindir="$bindir" mysqld="@libexecdir@/mysqld" pkgdatadir="@pkgdatadir@" -else - bindir="$basedir/bin" - extra_bindir="$bindir" - # We set up bootstrap-specific paths later, so skip this for --windows - if test "$windows" -eq 0 - then - mysqld=`find_in_basedir mysqld libexec sbin bin` - if test -z "$basedir" - then - # We come here when source-install is given - bindir="$basedir/bin" - extra_bindir="$bindir" - fi - if test -x "$mysqld" - then - pkgdatadir=`find_in_basedir --dir fill_help_tables.sql share share/mysql scripts` - if test -z "$pkgdatadir" - then - missing_in_basedir fill_help_tables.sql - exit 1 - fi - else - if test -x "./sql/mysqld" - then - # Source installation - mysqld="./sql/mysqld" - bindir="./client" - extra_bindir="./extra" - pkgdatadir="./scripts" - mysqld_opt="--language=./sql/share/english" - else - missing_in_basedir mysqld - fi - fi - fi -fi - -# Path to data directory -if test -z "$ldata" -then - ldata="@localstatedir@" -fi - -# Set up paths to SQL scripts required for bootstrap and ensure they exist. -if test -n "$srcdir" -then - pkgdatadir="$srcdir/scripts" + scriptdir="@scriptdir@" fi +# Set up paths to SQL scripts required for bootstrap fill_help_tables="$pkgdatadir/fill_help_tables.sql" create_system_tables="$pkgdatadir/mysql_system_tables.sql" fill_system_tables="$pkgdatadir/mysql_system_tables_data.sql" @@ -286,28 +245,14 @@ for f in $fill_help_tables $create_system_tables $fill_system_tables do if test ! -f "$f" then - echo "FATAL ERROR: Could not find SQL file '$f'" + cannot_find_file "$f" exit 1 fi done -# Set up Windows-specific paths -if test "$windows" -eq 1 -then - mysqld="./sql/mysqld" - if test -n "$srcdir" -a -f "$srcdir/sql/share/english/errmsg.sys" - then - mysqld_opt="--language=$srcdir/sql/share/english" - else - mysqld_opt="--language=./sql/share/english" - fi -fi - -# Make sure mysqld is available in default location (--basedir option is -# already tested above). if test ! -x "$mysqld" then - echo "FATAL ERROR: 'mysqld' executable not found!" + cannot_find_file "$mysqld" exit 1 fi @@ -318,10 +263,10 @@ hostname=`@HOSTNAME@` if test "$windows" -eq 0 -a "$in_rpm" -eq 0 -a "$force" -eq 0 then resolved=`$extra_bindir/resolveip $hostname 2>&1` - if [ $? -ne 0 ] + if test $? -ne 0 then resolved=`$extra_bindir/resolveip localhost 2>&1` - if [ $? -ne 0 ] + if test $? -ne 0 then echo "Neither host '$hostname' nor 'localhost' could be looked up with" echo "$extra_bindir/resolveip" @@ -345,7 +290,7 @@ then hostname=`echo "$resolved" | awk '/ /{print $6}'` fi -# Create database directories mysql & test +# Create database directories for dir in $ldata $ldata/mysql $ldata/test do if test ! -d $dir @@ -364,98 +309,98 @@ then args="$args --user=$user" fi -# Peform the install of system tables +# Configure mysqld command line mysqld_bootstrap="${MYSQLD_BOOTSTRAP-$mysqld}" mysqld_install_cmd_line="$mysqld_bootstrap $defaults $mysqld_opt --bootstrap \ --basedir=$basedir --datadir=$ldata --log-warnings=0 --loose-skip-innodb \ --loose-skip-ndbcluster $args --max_allowed_packet=8M \ --net_buffer_length=16K" -# Pipe mysql_system_tables.sql to "mysqld --bootstrap" +# Create the system and help tables by passing them to "mysqld --bootstrap" s_echo "Installing MySQL system tables..." if `(echo "use mysql;"; cat $create_system_tables $fill_system_tables) | $mysqld_install_cmd_line` then s_echo "OK" +else + echo + echo "Installation of system tables failed! Examine the logs in" + echo "$ldata for more information." + echo + echo "You can try to start the mysqld daemon with:" + echo + echo " shell> $mysqld --skip-grant &" + echo + echo "and use the command line tool $bindir/mysql" + echo "to connect to the mysql database and look at the grant tables:" + echo + echo " shell> $bindir/mysql -u root mysql" + echo " mysql> show tables" + echo + echo "Try 'mysqld --help' if you have problems with paths. Using --log" + echo "gives you a log in $ldata that may be helpful." + echo + echo "The latest information about MySQL is available on the web at" + echo "http://www.mysql.com/. Please consult the MySQL manual section" + echo "'Problems running mysql_install_db', and the manual section that" + echo "describes problems on your OS. Another information source are the" + echo "MySQL email archives available at http://lists.mysql.com/." + echo + echo "Please check all of the above before mailing us! And remember, if" + echo "you do mail us, you MUST use the $scriptdir/mysqlbug script!" + echo + exit 1 +fi - s_echo "Filling help tables..." - # Pipe fill_help_tables.sql to "mysqld --bootstrap" - if `(echo "use mysql;"; cat $fill_help_tables) | $mysqld_install_cmd_line` - then - # Fill suceeded - s_echo "OK" - else - echo - echo "WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!" - echo "The \"HELP\" command might not work properly" - echo - fi +s_echo "Filling help tables..." +if `(echo "use mysql;"; cat $fill_help_tables) | $mysqld_install_cmd_line` +then + s_echo "OK" +else + echo + echo "WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!" + echo "The \"HELP\" command might not work properly." +fi +# Don't output verbose information if running inside bootstrap or using +# --srcdir for testing. +if test "$windows" -eq 0 && test -z "$srcdir" +then s_echo s_echo "To start mysqld at boot time you have to copy" s_echo "support-files/mysql.server to the right place for your system" - s_echo - if test "$windows" -eq 0 + echo + echo "PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !" + echo "To do so, start the server, then issue the following commands:" + echo + echo "$bindir/mysqladmin -u root password 'new-password'" + echo "$bindir/mysqladmin -u root -h $hostname password 'new-password'" + echo + echo "Alternatively you can run:" + echo "$bindir/mysql_secure_installation" + echo + echo "which will also give you the option of removing the test" + echo "databases and anonymous user created by default. This is" + echo "strongly recommended for production servers." + echo + echo "See the manual for more instructions." + + if test "$in_rpm" -eq 0 then - # A root password should of course also be set on Windows! - # The reason for not displaying these prompts here is that when - # executing this script with the --windows argument the script - # is used to generate system tables mainly used by the - # windows installer. And thus the password should not be set until - # those files has been copied to the target system - echo "PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !" - echo "To do so, start the server, then issue the following commands:" - echo "$bindir/mysqladmin -u root password 'new-password'" - echo "$bindir/mysqladmin -u root -h $hostname password 'new-password'" - echo - echo "Alternatively you can run:" - echo "$bindir/mysql_secure_installation" echo - echo "which will also give you the option of removing the test" - echo "databases and anonymous user created by default. This is" - echo "strongly recommended for production servers." + echo "You can start the MySQL daemon with:" + echo "cd $basedir ; $bindir/mysqld_safe &" echo - echo "See the manual for more instructions." - echo - - if test "$in_rpm" -eq 0 -a "$source_install" -eq 0 - then - echo "You can start the MySQL daemon with:" - echo "cd @prefix@ ; $bindir/mysqld_safe &" - echo - echo "You can test the MySQL daemon with mysql-test-run.pl" - echo "cd mysql-test ; perl mysql-test-run.pl" - echo - fi - echo "Please report any problems with the @scriptdir@/mysqlbug script!" - echo - echo "The latest information about MySQL is available on the web at" - echo "http://www.mysql.com" - echo "Support MySQL by buying support/licenses at http://shop.mysql.com" + echo "You can test the MySQL daemon with mysql-test-run.pl" + echo "cd $basedir/mysql-test ; perl mysql-test-run.pl" fi - exit 0 -else - echo "Installation of system tables failed!" - echo - echo "Examine the logs in $ldata for more information." - echo "You can try to start the mysqld daemon with:" - echo "$mysqld --skip-grant &" - echo "and use the command line tool" - echo "$bindir/mysql to connect to the mysql" - echo "database and look at the grant tables:" + echo - echo "shell> $bindir/mysql -u root mysql" - echo "mysql> show tables" + echo "Please report any problems with the $scriptdir/mysqlbug script!" echo - echo "Try 'mysqld --help' if you have problems with paths. Using --log" - echo "gives you a log in $ldata that may be helpful." + echo "The latest information about MySQL is available at http://www.mysql.com/" + echo "Support MySQL by buying support/licenses from http://shop.mysql.com/" echo - echo "The latest information about MySQL is available on the web at" - echo "http://www.mysql.com" - echo "Please consult the MySQL manual section: 'Problems running mysql_install_db'," - echo "and the manual section that describes problems on your OS." - echo "Another information source is the MySQL email archive." - echo "Please check all of the above before mailing us!" - echo "And if you do mail us, you MUST use the @scriptdir@/mysqlbug script!" - exit 1 fi + +exit 0 diff --git a/sql-common/my_time.c b/sql-common/my_time.c index a1a3e0b6c77..48d1b198dfc 100644 --- a/sql-common/my_time.c +++ b/sql-common/my_time.c @@ -54,24 +54,24 @@ uint calc_days_in_year(uint year) 366 : 365); } -/* - Check datetime value for validity according to flags. - - SYNOPSIS - check_date() - ltime Date to check. - not_zero_date ltime is not the zero date - flags flags to check - was_cut set to 2 if value was truncated. - NOTE: This is not touched if value was not truncated - NOTES - Here we assume that year and month is ok ! +/** + @brief Check datetime value for validity according to flags. + + @param[in] ltime Date to check. + @param[in] not_zero_date ltime is not the zero date + @param[in] flags flags to check + (see str_to_datetime() flags in my_time.h) + @param[out] was_cut set to 2 if value was invalid according to flags. + (Feb 29 in non-leap etc.) This remains unchanged + if value is not invalid. + + @details Here we assume that year and month is ok! If month is 0 we allow any date. (This only happens if we allow zero date parts in str_to_datetime()) Disallow dates with zero year and non-zero month and/or day. - RETURN - 0 ok + @return + 0 OK 1 error */ @@ -117,9 +117,9 @@ my_bool check_date(const MYSQL_TIME *ltime, my_bool not_zero_date, TIME_NO_ZERO_IN_DATE Don't allow partial dates TIME_NO_ZERO_DATE Don't allow 0000-00-00 date TIME_INVALID_DATES Allow 2000-02-31 - was_cut 0 Value ok + was_cut 0 Value OK 1 If value was cut during conversion - 2 Date part was within ranges but date was wrong + 2 check_date(date,flags) considers date invalid DESCRIPTION At least the following formats are recogniced (based on number of digits) @@ -1084,7 +1084,7 @@ int my_TIME_to_str(const MYSQL_TIME *l_time, char *to) flags - flags to use in validating date, as in str_to_datetime() was_cut 0 Value ok 1 If value was cut during conversion - 2 Date part was within ranges but date was wrong + 2 check_date(date,flags) considers date invalid DESCRIPTION Convert a datetime value of formats YYMMDD, YYYYMMDD, YYMMDDHHMSS, diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt index 299f4ae4285..77abc4e6fa5 100755 --- a/sql/CMakeLists.txt +++ b/sql/CMakeLists.txt @@ -90,12 +90,14 @@ TARGET_LINK_LIBRARIES(mysqld SET_TARGET_PROPERTIES(mysqld PROPERTIES OUTPUT_NAME mysqld${MYSQLD_EXE_SUFFIX}) +IF(cmake_version EQUAL 20406) # Work around for 2.4.6 bug, OUTPUT_NAME will not set the right .PDB # file name. Note that COMPILE_FLAGS set some temporary pdb during build, # LINK_FLAGS sets the real one. SET_TARGET_PROPERTIES(mysqld PROPERTIES COMPILE_FLAGS "/Fd${CMAKE_CFG_INTDIR}/mysqld${MYSQLD_EXE_SUFFIX}.pdb" LINK_FLAGS "/PDB:${CMAKE_CFG_INTDIR}/mysqld${MYSQLD_EXE_SUFFIX}.pdb") +ENDIF(cmake_version EQUAL 20406) IF(EMBED_MANIFESTS) MYSQL_EMBED_MANIFEST("mysqld" "asInvoker") diff --git a/sql/event_scheduler.cc b/sql/event_scheduler.cc index d3a031fd8f8..5655a8acc99 100644 --- a/sql/event_scheduler.cc +++ b/sql/event_scheduler.cc @@ -127,6 +127,7 @@ post_init_event_thread(THD *thd) thd->cleanup(); return TRUE; } + lex_start(thd); pthread_mutex_lock(&LOCK_thread_count); threads.append(thd); diff --git a/sql/events.cc b/sql/events.cc index 1bfbc5d6645..262c62bdbc8 100644 --- a/sql/events.cc +++ b/sql/events.cc @@ -884,6 +884,7 @@ Events::init(my_bool opt_noacl) */ thd->thread_stack= (char*) &thd; thd->store_globals(); + lex_start(thd); /* We will need Event_db_repository anyway, even if the scheduler is diff --git a/sql/field.cc b/sql/field.cc index e3c01bf195a..cd8228305e4 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -4728,6 +4728,8 @@ Field_timestamp::Field_timestamp(uchar *ptr_arg, uint32 len_arg, /* This timestamp has auto-update */ share->timestamp_field= this; flags|= TIMESTAMP_FLAG; + if (unireg_check != TIMESTAMP_DN_FIELD) + flags|= ON_UPDATE_NOW_FLAG; } } @@ -4741,6 +4743,8 @@ Field_timestamp::Field_timestamp(bool maybe_null_arg, { /* For 4.0 MYD and 4.0 InnoDB compatibility */ flags|= ZEROFILL_FLAG | UNSIGNED_FLAG; + if (unireg_check != TIMESTAMP_DN_FIELD) + flags|= ON_UPDATE_NOW_FLAG; } diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index 436710e3dee..bf2b19bfc9c 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -9073,6 +9073,7 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused))) thd->thread_stack= (char*)&thd; /* remember where our stack is */ if (thd->store_globals()) goto ndb_util_thread_fail; + lex_start(thd); thd->init_for_queries(); thd->version=refresh_version; thd->main_security_ctx.host_or_ip= ""; diff --git a/sql/ha_ndbcluster_binlog.cc b/sql/ha_ndbcluster_binlog.cc index cf13110e359..7606c4911d1 100644 --- a/sql/ha_ndbcluster_binlog.cc +++ b/sql/ha_ndbcluster_binlog.cc @@ -3621,6 +3621,7 @@ pthread_handler_t ndb_binlog_thread_func(void *arg) pthread_exit(0); DBUG_RETURN(NULL); } + lex_start(thd); thd->init_for_queries(); thd->command= COM_DAEMON; diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc index 8afaab71160..1400d9da753 100644 --- a/sql/ha_partition.cc +++ b/sql/ha_partition.cc @@ -1599,6 +1599,7 @@ error: void ha_partition::update_create_info(HA_CREATE_INFO *create_info) { m_file[0]->update_create_info(create_info); + create_info->data_file_name= create_info->index_file_name = NULL; return; } @@ -2678,7 +2679,8 @@ int ha_partition::write_row(uchar * buf) uint32 part_id; int error; longlong func_value; - bool autoincrement_lock= false; + bool autoincrement_lock= FALSE; + my_bitmap_map *old_map; #ifdef NOT_NEEDED uchar *rec0= m_rec0; #endif @@ -2705,8 +2707,17 @@ int ha_partition::write_row(uchar * buf) use autoincrement_lock variable to avoid unnecessary locks. Probably not an ideal solution. */ - autoincrement_lock= true; - pthread_mutex_lock(&table_share->mutex); + if (table_share->tmp_table == NO_TMP_TABLE) + { + /* + Bug#30878 crash when alter table from non partitioned table + to partitioned. + Checking if tmp table then there is no need to lock, + and the table_share->mutex may not be initialised. + */ + autoincrement_lock= TRUE; + pthread_mutex_lock(&table_share->mutex); + } error= update_auto_increment(); /* @@ -2715,10 +2726,10 @@ int ha_partition::write_row(uchar * buf) the correct partition. We must check and fail if neccessary. */ if (error) - DBUG_RETURN(error); + goto exit; } - my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set); + old_map= dbug_tmp_use_all_columns(table, table->read_set); #ifdef NOT_NEEDED if (likely(buf == rec0)) #endif @@ -2783,16 +2794,28 @@ exit: int ha_partition::update_row(const uchar *old_data, uchar *new_data) { uint32 new_part_id, old_part_id; - int error; + int error= 0; longlong func_value; + timestamp_auto_set_type orig_timestamp_type= table->timestamp_field_type; DBUG_ENTER("ha_partition::update_row"); + /* + We need to set timestamp field once before we calculate + the partition. Then we disable timestamp calculations + inside m_file[*]->update_row() methods + */ + if (orig_timestamp_type & TIMESTAMP_AUTO_SET_ON_UPDATE) + { + table->timestamp_field->set_time(); + table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET; + } + if ((error= get_parts_for_update(old_data, new_data, table->record[0], m_part_info, &old_part_id, &new_part_id, &func_value))) { m_part_info->err_value= func_value; - DBUG_RETURN(error); + goto exit; } /* @@ -2804,23 +2827,27 @@ int ha_partition::update_row(const uchar *old_data, uchar *new_data) if (new_part_id == old_part_id) { DBUG_PRINT("info", ("Update in partition %d", new_part_id)); - DBUG_RETURN(m_file[new_part_id]->update_row(old_data, new_data)); + error= m_file[new_part_id]->update_row(old_data, new_data); + goto exit; } else { DBUG_PRINT("info", ("Update from partition %d to partition %d", old_part_id, new_part_id)); if ((error= m_file[new_part_id]->write_row(new_data))) - DBUG_RETURN(error); + goto exit; if ((error= m_file[old_part_id]->delete_row(old_data))) { #ifdef IN_THE_FUTURE (void) m_file[new_part_id]->delete_last_inserted_row(new_data); #endif - DBUG_RETURN(error); + goto exit; } } - DBUG_RETURN(0); + +exit: + table->timestamp_field_type= orig_timestamp_type; + DBUG_RETURN(error); } diff --git a/sql/handler.cc b/sql/handler.cc index 1606c160238..8a2355c8a87 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -2542,15 +2542,56 @@ int ha_enable_transaction(THD *thd, bool on) int handler::index_next_same(uchar *buf, const uchar *key, uint keylen) { int error; + DBUG_ENTER("index_next_same"); if (!(error=index_next(buf))) { + my_ptrdiff_t ptrdiff= buf - table->record[0]; + uchar *save_record_0; + KEY *key_info; + KEY_PART_INFO *key_part; + KEY_PART_INFO *key_part_end; + LINT_INIT(save_record_0); + LINT_INIT(key_info); + LINT_INIT(key_part); + LINT_INIT(key_part_end); + + /* + key_cmp_if_same() compares table->record[0] against 'key'. + In parts it uses table->record[0] directly, in parts it uses + field objects with their local pointers into table->record[0]. + If 'buf' is distinct from table->record[0], we need to move + all record references. This is table->record[0] itself and + the field pointers of the fields used in this key. + */ + if (ptrdiff) + { + save_record_0= table->record[0]; + table->record[0]= buf; + key_info= table->key_info + active_index; + key_part= key_info->key_part; + key_part_end= key_part + key_info->key_parts; + for (; key_part < key_part_end; key_part++) + { + DBUG_ASSERT(key_part->field); + key_part->field->move_field_offset(ptrdiff); + } + } + if (key_cmp_if_same(table, key, active_index, keylen)) { table->status=STATUS_NOT_FOUND; error=HA_ERR_END_OF_FILE; } + + /* Move back if necessary. */ + if (ptrdiff) + { + table->record[0]= save_record_0; + for (key_part= key_info->key_part; key_part < key_part_end; key_part++) + key_part->field->move_field_offset(-ptrdiff); + } } - return error; + DBUG_RETURN(error); } diff --git a/sql/item.cc b/sql/item.cc index 95c8cd582cd..c8ec2206f02 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -3349,7 +3349,7 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list) if (cur_field->table_name && table_name) { /* If field_name is qualified by a table name. */ - if (strcmp(cur_field->table_name, table_name)) + if (my_strcasecmp(table_alias_charset, cur_field->table_name, table_name)) /* Same field names, different tables. */ return NULL; @@ -4649,7 +4649,7 @@ int Item::save_in_field(Field *field, bool no_conversions) my_decimal decimal_value; my_decimal *value= val_decimal(&decimal_value); if (null_value) - return set_field_to_null(field); + return set_field_to_null_with_conversions(field, no_conversions); field->set_notnull(); error=field->store_decimal(value); } @@ -6358,9 +6358,9 @@ bool field_is_equal_to_item(Field *field,Item *item) return result == field->val_real(); } -Item_cache* Item_cache::get_cache(Item_result type) +Item_cache* Item_cache::get_cache(const Item *item) { - switch (type) { + switch (item->result_type()) { case INT_RESULT: return new Item_cache_int(); case REAL_RESULT: @@ -6368,7 +6368,7 @@ Item_cache* Item_cache::get_cache(Item_result type) case DECIMAL_RESULT: return new Item_cache_decimal(); case STRING_RESULT: - return new Item_cache_str(); + return new Item_cache_str(item); case ROW_RESULT: return new Item_cache_row(); default: @@ -6546,6 +6546,14 @@ my_decimal *Item_cache_str::val_decimal(my_decimal *decimal_val) } +int Item_cache_str::save_in_field(Field *field, bool no_conversions) +{ + int res= Item_cache::save_in_field(field, no_conversions); + return (is_varbinary && field->type() == MYSQL_TYPE_STRING && + value->length() < field->field_length) ? 1 : res; +} + + bool Item_cache_row::allocate(uint num) { item_count= num; @@ -6564,7 +6572,7 @@ bool Item_cache_row::setup(Item * item) { Item *el= item->element_index(i); Item_cache *tmp; - if (!(tmp= values[i]= Item_cache::get_cache(el->result_type()))) + if (!(tmp= values[i]= Item_cache::get_cache(el))) return 1; tmp->setup(el); } diff --git a/sql/item.h b/sql/item.h index c8294eabb6a..6990d9ed021 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1719,7 +1719,7 @@ public: double val_real() { DBUG_ASSERT(fixed == 1); return ulonglong2double((ulonglong)value); } String *val_str(String*); - Item *clone_item() { return new Item_uint(name,max_length); } + Item *clone_item() { return new Item_uint(name, value, max_length); } int save_in_field(Field *field, bool no_conversions); void print(String *str); Item_num *neg (); @@ -2637,7 +2637,7 @@ public: }; virtual void store(Item *)= 0; enum Type type() const { return CACHE_ITEM; } - static Item_cache* get_cache(Item_result type); + static Item_cache* get_cache(const Item *item); table_map used_tables() const { return used_table_map; } virtual void keep_array() {} // to prevent drop fixed flag (no need parent cleanup call) @@ -2699,9 +2699,16 @@ class Item_cache_str: public Item_cache { char buffer[STRING_BUFFER_USUAL_SIZE]; String *value, value_buff; + bool is_varbinary; + public: - Item_cache_str(): Item_cache(), value(0) { } - + Item_cache_str(const Item *item) : + Item_cache(), value(0), + is_varbinary(item->type() == FIELD_ITEM && + ((const Item_field *) item)->field->type() == + MYSQL_TYPE_VARCHAR && + !((const Item_field *) item)->field->has_charset()) + {} void store(Item *item); double val_real(); longlong val_int(); @@ -2709,6 +2716,7 @@ public: my_decimal *val_decimal(my_decimal *); enum Item_result result_type() const { return STRING_RESULT; } CHARSET_INFO *charset() const { return value->charset(); }; + int save_in_field(Field *field, bool no_conversions); }; class Item_cache_row: public Item_cache diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 47649006ccf..006846b147f 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -604,26 +604,26 @@ int Arg_comparator::set_compare_func(Item_bool_func2 *item, Item_result type) } -/* - Convert date provided in a string to the int representation. - - SYNOPSIS - get_date_from_str() - thd Thread handle - str a string to convert - warn_type type of the timestamp for issuing the warning - warn_name field name for issuing the warning - error_arg [out] TRUE if string isn't a DATETIME or clipping occur - - DESCRIPTION - Convert date provided in the string str to the int representation. - if the string contains wrong date or doesn't contain it at all - then the warning is issued and TRUE returned in the error_arg argument. - The warn_type and the warn_name arguments are used as the name and the - type of the field when issuing the warning. - - RETURN - converted value. +/** + @brief Convert date provided in a string to the int representation. + + @param[in] thd thread handle + @param[in] str a string to convert + @param[in] warn_type type of the timestamp for issuing the warning + @param[in] warn_name field name for issuing the warning + @param[out] error_arg could not extract a DATE or DATETIME + + @details Convert date provided in the string str to the int + representation. If the string contains wrong date or doesn't + contain it at all then a warning is issued. The warn_type and + the warn_name arguments are used as the name and the type of the + field when issuing the warning. If any input was discarded + (trailing or non-timestampy characters), was_cut will be non-zero. + was_type will return the type str_to_datetime() could correctly + extract. + + @return + converted value. 0 on error and on zero-dates -- check 'failure' */ static ulonglong @@ -634,26 +634,33 @@ get_date_from_str(THD *thd, String *str, timestamp_type warn_type, int error; MYSQL_TIME l_time; enum_mysql_timestamp_type ret; - *error_arg= TRUE; ret= str_to_datetime(str->ptr(), str->length(), &l_time, (TIME_FUZZY_DATE | MODE_INVALID_DATES | (thd->variables.sql_mode & (MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE))), &error); - if ((ret == MYSQL_TIMESTAMP_DATETIME || ret == MYSQL_TIMESTAMP_DATE)) + + if (ret == MYSQL_TIMESTAMP_DATETIME || ret == MYSQL_TIMESTAMP_DATE) { - value= TIME_to_ulonglong_datetime(&l_time); + /* + Do not return yet, we may still want to throw a "trailing garbage" + warning. + */ *error_arg= FALSE; + value= TIME_to_ulonglong_datetime(&l_time); } - - if (error || *error_arg) + else { + *error_arg= TRUE; + error= 1; /* force warning */ + } + + if (error > 0) make_truncated_value_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, str->ptr(), str->length(), warn_type, warn_name); - *error_arg= TRUE; - } + return value; } @@ -954,6 +961,12 @@ get_datetime_value(THD *thd, Item ***item_arg, Item **cache_arg, timestamp_type t_type= f_type == MYSQL_TYPE_DATE ? MYSQL_TIMESTAMP_DATE : MYSQL_TIMESTAMP_DATETIME; value= get_date_from_str(thd, str, t_type, warn_item->name, &error); + /* + If str did not contain a valid date according to the current + SQL_MODE, get_date_from_str() has already thrown a warning, + and we don't want to throw NULL on invalid date (see 5.2.6 + "SQL modes" in the manual), so we're done here. + */ } /* Do not cache GET_USER_VAR() function as its const_item() may return TRUE @@ -1425,7 +1438,7 @@ longlong Item_func_truth::val_int() bool Item_in_optimizer::fix_left(THD *thd, Item **ref) { if (!args[0]->fixed && args[0]->fix_fields(thd, args) || - !cache && !(cache= Item_cache::get_cache(args[0]->result_type()))) + !cache && !(cache= Item_cache::get_cache(args[0]))) return 1; cache->setup(args[0]); diff --git a/sql/item_func.cc b/sql/item_func.cc index ec0ecc89394..809319d9056 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -2000,6 +2000,7 @@ void Item_func_round::fix_length_and_dec() case DECIMAL_RESULT: { hybrid_type= DECIMAL_RESULT; + decimals_to_set= min(DECIMAL_MAX_SCALE, decimals_to_set); int decimals_delta= args[0]->decimals - decimals_to_set; int precision= args[0]->decimal_precision(); int length_increase= ((decimals_delta <= 0) || truncate) ? 0:1; @@ -2106,7 +2107,7 @@ my_decimal *Item_func_round::decimal_op(my_decimal *decimal_value) longlong dec= args[1]->val_int(); if (dec > 0 || (dec < 0 && args[1]->unsigned_flag)) { - dec= min((ulonglong) dec, DECIMAL_MAX_SCALE); + dec= min((ulonglong) dec, decimals); decimals= (uint8) dec; // to get correct output } else if (dec < INT_MIN) diff --git a/sql/item_func.h b/sql/item_func.h index b2ba57af817..4d7c96a18c1 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -236,9 +236,40 @@ public: my_decimal *val_decimal(my_decimal *); String *val_str(String*str); + /** + @brief Performs the operation that this functions implements when the + result type is INT. + + @return The result of the operation. + */ virtual longlong int_op()= 0; + + /** + @brief Performs the operation that this functions implements when the + result type is REAL. + + @return The result of the operation. + */ virtual double real_op()= 0; + + /** + @brief Performs the operation that this functions implements when the + result type is DECIMAL. + + @param A pointer where the DECIMAL value will be allocated. + @return + - 0 If the result is NULL + - The same pointer it was given, with the area initialized to the + result of the operation. + */ virtual my_decimal *decimal_op(my_decimal *)= 0; + + /** + @brief Performs the operation that this functions implements when the + result type is a string type. + + @return The result of the operation. + */ virtual String *str_op(String *)= 0; bool is_null() { update_null_value(); return null_value; } }; diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h index 1a264fa2c01..3608568bd5e 100644 --- a/sql/item_strfunc.h +++ b/sql/item_strfunc.h @@ -558,7 +558,8 @@ public: void fix_length_and_dec() { collation.set(default_charset()); - max_length= 64; + max_length=64; + maybe_null= 1; } }; @@ -656,7 +657,7 @@ public: } String* val_str(String* str); const char *func_name() const { return "inet_ntoa"; } - void fix_length_and_dec() { decimals = 0; max_length=3*8+7; } + void fix_length_and_dec() { decimals = 0; max_length=3*8+7; maybe_null=1;} }; class Item_func_quote :public Item_str_func diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index 8eb7421f854..423f067e54d 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -1760,7 +1760,7 @@ void subselect_engine::set_row(List<Item> &item_list, Item_cache **row) item->decimals= sel_item->decimals; item->unsigned_flag= sel_item->unsigned_flag; maybe_null= sel_item->maybe_null; - if (!(row[i]= Item_cache::get_cache(res_type))) + if (!(row[i]= Item_cache::get_cache(sel_item))) return; row[i]->setup(sel_item); } @@ -2222,6 +2222,7 @@ int subselect_indexsubquery_engine::exec() ((Item_in_subselect *) item)->value= 0; empty_result_set= TRUE; null_keypart= 0; + table->status= 0; if (check_null) { @@ -2234,6 +2235,16 @@ int subselect_indexsubquery_engine::exec() if (copy_ref_key()) DBUG_RETURN(1); + if (table->status) + { + /* + We know that there will be no rows even if we scan. + Can be set in copy_ref_key. + */ + ((Item_in_subselect *) item)->value= 0; + DBUG_RETURN(0); + } + if (null_keypart) DBUG_RETURN(scan_table()); diff --git a/sql/item_subselect.h b/sql/item_subselect.h index 51ab7b8ad42..de4b1cbdc06 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -307,6 +307,7 @@ public: double val_real(); String *val_str(String*); my_decimal *val_decimal(my_decimal *); + void update_null_value () { (void) val_bool(); } bool val_bool(); void top_level_item() { abort_on_null=1; } inline bool is_top_level_item() { return abort_on_null; } diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 0e1daadd8e7..a7574cf4d60 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -3427,7 +3427,7 @@ String* Item_func_group_concat::val_str(String* str) DBUG_ASSERT(fixed == 1); if (null_value) return 0; - if (!result.length() && tree) + if (no_appended && tree) /* Tree is used for sorting as in ORDER BY */ tree_walk(tree, (tree_walk_action)&dump_leaf_key, (void*)this, left_root_right); diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index 8240b7178c7..e7d513e9d6a 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -2586,6 +2586,13 @@ bool Item_date_typecast::get_date(MYSQL_TIME *ltime, uint fuzzy_date) } +bool Item_date_typecast::get_time(MYSQL_TIME *ltime) +{ + bzero((char *)ltime, sizeof(MYSQL_TIME)); + return args[0]->null_value; +} + + String *Item_date_typecast::val_str(String *str) { DBUG_ASSERT(fixed == 1); diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h index 844c3d84313..9be7e97db49 100644 --- a/sql/item_timefunc.h +++ b/sql/item_timefunc.h @@ -778,6 +778,7 @@ public: const char *func_name() const { return "cast_as_date"; } String *val_str(String *str); bool get_date(MYSQL_TIME *ltime, uint fuzzy_date); + bool get_time(MYSQL_TIME *ltime); const char *cast_type() const { return "date"; } enum_field_types field_type() const { return MYSQL_TYPE_DATE; } Field *tmp_table_field(TABLE *table) diff --git a/sql/log_event.cc b/sql/log_event.cc index fbb44fd8f38..705fdb5a2b2 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -46,7 +46,7 @@ #define FMT_G_BUFSIZE(PREC) (3 + (PREC) + 5 + 1) -#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) && !defined(DBUG_OFF) && !defined(_lint) +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) static const char *HA_ERR(int i) { switch (i) { @@ -100,7 +100,28 @@ static const char *HA_ERR(int i) case HA_ERR_LOGGING_IMPOSSIBLE: return "HA_ERR_LOGGING_IMPOSSIBLE"; case HA_ERR_CORRUPT_EVENT: return "HA_ERR_CORRUPT_EVENT"; } - return "<unknown error>"; + return 0; +} + +/** + macro to call from different branches of Rows_log_event::do_apply_event +*/ +static void inline slave_rows_error_report(enum loglevel level, int ha_error, + Relay_log_info const *rli, THD *thd, + TABLE *table, const char * type, + const char *log_name, ulong pos) +{ + const char *handler_error= HA_ERR(ha_error); + rli->report(level, thd->net.last_errno, + "Could not execute %s event on table %s.%s;" + "%s%s handler error %s; " + "the event's master log %s, end_log_pos %lu", + type, table->s->db.str, + table->s->table_name.str, + thd->net.last_error[0] != 0 ? thd->net.last_error : "", + thd->net.last_error[0] != 0 ? ";" : "", + handler_error == NULL? "<unknown>" : handler_error, + log_name, pos); } #endif @@ -1672,18 +1693,48 @@ Query_log_event::Query_log_event(THD* thd_arg, const char* query_arg, /* 2 utility functions for the next method */ -/* - Get the pointer for a string (src) that contains the length in - the first byte. Set the output string (dst) to the string value - and place the length of the string in the byte after the string. +/** + Read a string with length from memory. + + This function reads the string-with-length stored at + <code>src</code> and extract the length into <code>*len</code> and + a pointer to the start of the string into <code>*dst</code>. The + string can then be copied using <code>memcpy()</code> with the + number of bytes given in <code>*len</code>. + + @param src Pointer to variable holding a pointer to the memory to + read the string from. + @param dst Pointer to variable holding a pointer where the actual + string starts. Starting from this position, the string + can be copied using @c memcpy(). + @param len Pointer to variable where the length will be stored. + @param end One-past-the-end of the memory where the string is + stored. + + @return Zero if the entire string can be copied successfully, + @c UINT_MAX if the length could not be read from memory + (that is, if <code>*src >= end</code>), otherwise the + number of bytes that are missing to read the full + string, which happends <code>*dst + *len >= end</code>. */ -static void get_str_len_and_pointer(const Log_event::Byte **src, - const char **dst, - uint *len) -{ - if ((*len= **src)) - *dst= (char *)*src + 1; // Will be copied later - (*src)+= *len + 1; +static int +get_str_len_and_pointer(const Log_event::Byte **src, + const char **dst, + uint *len, + const Log_event::Byte *end) +{ + if (*src >= end) + return -1; // Will be UINT_MAX in two-complement arithmetics + uint length= **src; + if (length > 0) + { + if (*src + length >= end) + return *src + length - end + 1; // Number of bytes missing + *dst= (char *)*src + 1; // Will be copied later + } + *len= length; + *src+= length + 1; + return 0; } static void copy_str_and_move(const char **src, @@ -1696,6 +1747,46 @@ static void copy_str_and_move(const char **src, *(*dst)++= 0; } + +#ifndef DBUG_OFF +static char const * +code_name(int code) +{ + static char buf[255]; + switch (code) { + case Q_FLAGS2_CODE: return "Q_FLAGS2_CODE"; + case Q_SQL_MODE_CODE: return "Q_SQL_MODE_CODE"; + case Q_CATALOG_CODE: return "Q_CATALOG_CODE"; + case Q_AUTO_INCREMENT: return "Q_AUTO_INCREMENT"; + case Q_CHARSET_CODE: return "Q_CHARSET_CODE"; + case Q_TIME_ZONE_CODE: return "Q_TIME_ZONE_CODE"; + case Q_CATALOG_NZ_CODE: return "Q_CATALOG_NZ_CODE"; + case Q_LC_TIME_NAMES_CODE: return "Q_LC_TIME_NAMES_CODE"; + case Q_CHARSET_DATABASE_CODE: return "Q_CHARSET_DATABASE_CODE"; + } + sprintf(buf, "CODE#%d", code); + return buf; +} +#endif + +/** + Macro to check that there is enough space to read from memory. + + @param PTR Pointer to memory + @param END End of memory + @param CNT Number of bytes that should be read. + */ +#define CHECK_SPACE(PTR,END,CNT) \ + do { \ + DBUG_PRINT("info", ("Read %s", code_name(pos[-1]))); \ + DBUG_ASSERT((PTR) + (CNT) <= (END)); \ + if ((PTR) + (CNT) > (END)) { \ + DBUG_PRINT("info", ("query= 0")); \ + query= 0; \ + DBUG_VOID_RETURN; \ + } \ + } while (0) + /* Query_log_event::Query_log_event() This is used by the SQL slave thread to prepare the event before execution. @@ -1748,6 +1839,19 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, if (tmp) { status_vars_len= uint2korr(buf + Q_STATUS_VARS_LEN_OFFSET); + /* + Check if status variable length is corrupt and will lead to very + wrong data. We could be even more strict and require data_len to + be even bigger, but this will suffice to catch most corruption + errors that can lead to a crash. + */ + if (status_vars_len > min(data_len, MAX_SIZE_LOG_EVENT_STATUS)) + { + DBUG_PRINT("info", ("status_vars_len (%u) > data_len (%lu); query= 0", + status_vars_len, data_len)); + query= 0; + DBUG_VOID_RETURN; + } data_len-= status_vars_len; DBUG_PRINT("info", ("Query_log_event has status_vars_len: %u", (uint) status_vars_len)); @@ -1767,6 +1871,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, { switch (*pos++) { case Q_FLAGS2_CODE: + CHECK_SPACE(pos, end, 4); flags2_inited= 1; flags2= uint4korr(pos); DBUG_PRINT("info",("In Query_log_event, read flags2: %lu", (ulong) flags2)); @@ -1777,6 +1882,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, #ifndef DBUG_OFF char buff[22]; #endif + CHECK_SPACE(pos, end, 8); sql_mode_inited= 1; sql_mode= (ulong) uint8korr(pos); // QQ: Fix when sql_mode is ulonglong DBUG_PRINT("info",("In Query_log_event, read sql_mode: %s", @@ -1785,15 +1891,24 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, break; } case Q_CATALOG_NZ_CODE: - get_str_len_and_pointer(&pos, &catalog, &catalog_len); + DBUG_PRINT("info", ("case Q_CATALOG_NZ_CODE; pos: 0x%lx; end: 0x%lx", + (ulong) pos, (ulong) end)); + if (get_str_len_and_pointer(&pos, &catalog, &catalog_len, end)) + { + DBUG_PRINT("info", ("query= 0")); + query= 0; + DBUG_VOID_RETURN; + } break; case Q_AUTO_INCREMENT: + CHECK_SPACE(pos, end, 4); auto_increment_increment= uint2korr(pos); auto_increment_offset= uint2korr(pos+2); pos+= 4; break; case Q_CHARSET_CODE: { + CHECK_SPACE(pos, end, 6); charset_inited= 1; memcpy(charset, pos, 6); pos+= 6; @@ -1801,20 +1916,29 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, } case Q_TIME_ZONE_CODE: { - get_str_len_and_pointer(&pos, &time_zone_str, &time_zone_len); + if (get_str_len_and_pointer(&pos, &time_zone_str, &time_zone_len, end)) + { + DBUG_PRINT("info", ("Q_TIME_ZONE_CODE: query= 0")); + query= 0; + DBUG_VOID_RETURN; + } break; } case Q_CATALOG_CODE: /* for 5.0.x where 0<=x<=3 masters */ + CHECK_SPACE(pos, end, 1); if ((catalog_len= *pos)) catalog= (char*) pos+1; // Will be copied later + CHECK_SPACE(pos, end, catalog_len + 2); pos+= catalog_len+2; // leap over end 0 catalog_nz= 0; // catalog has end 0 in event break; case Q_LC_TIME_NAMES_CODE: + CHECK_SPACE(pos, end, 2); lc_time_names_number= uint2korr(pos); pos+= 2; break; case Q_CHARSET_DATABASE_CODE: + CHECK_SPACE(pos, end, 2); charset_database_number= uint2korr(pos); pos+= 2; break; @@ -2328,6 +2452,7 @@ end: */ thd->catalog= 0; thd->set_db(NULL, 0); /* will free the current database */ + DBUG_PRINT("info", ("end: query= 0")); thd->query= 0; // just to be sure thd->query_length= 0; VOID(pthread_mutex_unlock(&LOCK_thread_count)); @@ -6074,7 +6199,6 @@ int Rows_log_event::do_apply_event(Relay_log_info const *rli) { DBUG_ENTER("Rows_log_event::do_apply_event(Relay_log_info*)"); int error= 0; - /* If m_table_id == ~0UL, then we have a dummy event that does not contain any data. In that case, we just remove all tables in the @@ -6120,6 +6244,24 @@ int Rows_log_event::do_apply_event(Relay_log_info const *rli) */ lex_start(thd); + /* + There are a few flags that are replicated with each row event. + Make sure to set/clear them before executing the main body of + the event. + */ + if (get_flags(NO_FOREIGN_KEY_CHECKS_F)) + thd->options|= OPTION_NO_FOREIGN_KEY_CHECKS; + else + thd->options&= ~OPTION_NO_FOREIGN_KEY_CHECKS; + + if (get_flags(RELAXED_UNIQUE_CHECKS_F)) + thd->options|= OPTION_RELAXED_UNIQUE_CHECKS; + else + thd->options&= ~OPTION_RELAXED_UNIQUE_CHECKS; + /* A small test to verify that objects have consistent types */ + DBUG_ASSERT(sizeof(thd->options) == sizeof(OPTION_RELAXED_UNIQUE_CHECKS)); + + while ((error= lock_tables(thd, rli->tables_to_lock, rli->tables_to_lock_count, &need_reopen))) { @@ -6254,22 +6396,6 @@ int Rows_log_event::do_apply_event(Relay_log_info const *rli) So we call set_time(), like in SBR. Presently it changes nothing. */ thd->set_time((time_t)when); - /* - There are a few flags that are replicated with each row event. - Make sure to set/clear them before executing the main body of - the event. - */ - if (get_flags(NO_FOREIGN_KEY_CHECKS_F)) - thd->options|= OPTION_NO_FOREIGN_KEY_CHECKS; - else - thd->options&= ~OPTION_NO_FOREIGN_KEY_CHECKS; - - if (get_flags(RELAXED_UNIQUE_CHECKS_F)) - thd->options|= OPTION_RELAXED_UNIQUE_CHECKS; - else - thd->options&= ~OPTION_RELAXED_UNIQUE_CHECKS; - /* A small test to verify that objects have consistent types */ - DBUG_ASSERT(sizeof(thd->options) == sizeof(OPTION_RELAXED_UNIQUE_CHECKS)); /* Now we are in a statement and will stay in a statement until we @@ -6302,8 +6428,9 @@ int Rows_log_event::do_apply_event(Relay_log_info const *rli) if (!get_flags(COMPLETE_ROWS_F)) bitmap_intersect(table->write_set,&m_cols); + this->slave_exec_mode= slave_exec_mode_options; // fix the mode + // Do event specific preparations - error= do_before_row_operations(rli); // row processing loop @@ -6322,22 +6449,41 @@ int Rows_log_event::do_apply_event(Relay_log_info const *rli) { case 0: break; - - /* Some recoverable errors */ + /* + The following list of "idempotent" errors + means that an error from the list might happen + because of idempotent (more than once) + applying of a binlog file. + Notice, that binlog has a ddl operation its + second applying may cause + + case HA_ERR_TABLE_DEF_CHANGED: + case HA_ERR_CANNOT_ADD_FOREIGN: + + which are not included into to the list. + */ case HA_ERR_RECORD_CHANGED: case HA_ERR_RECORD_DELETED: case HA_ERR_KEY_NOT_FOUND: case HA_ERR_END_OF_FILE: - /* Idempotency support: OK if tuple does not exist */ + case HA_ERR_FOUND_DUPP_KEY: + case HA_ERR_FOUND_DUPP_UNIQUE: + case HA_ERR_FOREIGN_DUPLICATE_KEY: + case HA_ERR_NO_REFERENCED_ROW: + case HA_ERR_ROW_IS_REFERENCED: + DBUG_PRINT("info", ("error: %s", HA_ERR(error))); - error= 0; + if (bit_is_set(slave_exec_mode, SLAVE_EXEC_MODE_IDEMPOTENT) == 1) + { + if (global_system_variables.log_warnings) + slave_rows_error_report(WARNING_LEVEL, error, rli, thd, table, + get_type_str(), + RPL_LOG_NAME, (ulong) log_pos); + error= 0; + } break; - + default: - rli->report(ERROR_LEVEL, thd->net.last_errno, - "Error in %s event: row application failed. %s", - get_type_str(), - thd->net.last_error ? thd->net.last_error : ""); thd->is_slave_error= 1; break; } @@ -6381,16 +6527,14 @@ int Rows_log_event::do_apply_event(Relay_log_info const *rli) */ if (rli->tables_to_lock && get_flags(STMT_END_F)) const_cast<Relay_log_info*>(rli)->clear_tables_to_lock(); - + if (error) { /* error has occured during the transaction */ - rli->report(ERROR_LEVEL, thd->net.last_errno, - "Error in %s event: error during transaction execution " - "on table %s.%s. %s", - get_type_str(), table->s->db.str, - table->s->table_name.str, - thd->net.last_error ? thd->net.last_error : ""); - + slave_rows_error_report(ERROR_LEVEL, error, rli, thd, table, + get_type_str(), RPL_LOG_NAME, (ulong) log_pos); + } + if (error) + { /* If one day we honour --skip-slave-errors in row-based replication, and the error should be skipped, then we would clear mappings, rollback, @@ -6502,6 +6646,7 @@ Rows_log_event::do_update_pos(Relay_log_info *rli) */ thd->reset_current_stmt_binlog_row_based(); + rli->cleanup_context(thd, 0); if (error == 0) { @@ -7190,43 +7335,50 @@ Write_rows_log_event::do_before_row_operations(const Slave_reporting_capability { int error= 0; - /* - We are using REPLACE semantics and not INSERT IGNORE semantics - when writing rows, that is: new rows replace old rows. We need to - inform the storage engine that it should use this behaviour. + /** + todo: to introduce a property for the event (handler?) which forces + applying the event in the replace (idempotent) fashion. */ + if (bit_is_set(slave_exec_mode, SLAVE_EXEC_MODE_IDEMPOTENT) == 1 || + m_table->s->db_type()->db_type == DB_TYPE_NDBCLUSTER) + { + /* + We are using REPLACE semantics and not INSERT IGNORE semantics + when writing rows, that is: new rows replace old rows. We need to + inform the storage engine that it should use this behaviour. + */ + + /* Tell the storage engine that we are using REPLACE semantics. */ + thd->lex->duplicates= DUP_REPLACE; + + /* + Pretend we're executing a REPLACE command: this is needed for + InnoDB and NDB Cluster since they are not (properly) checking the + lex->duplicates flag. + */ + thd->lex->sql_command= SQLCOM_REPLACE; + /* + Do not raise the error flag in case of hitting to an unique attribute + */ + m_table->file->extra(HA_EXTRA_IGNORE_DUP_KEY); + /* + NDB specific: update from ndb master wrapped as Write_rows + so that the event should be applied to replace slave's row + */ + m_table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE); + /* + NDB specific: if update from ndb master wrapped as Write_rows + does not find the row it's assumed idempotent binlog applying + is taking place; don't raise the error. + */ + m_table->file->extra(HA_EXTRA_IGNORE_NO_KEY); + /* + TODO: the cluster team (Tomas?) says that it's better if the engine knows + how many rows are going to be inserted, then it can allocate needed memory + from the start. + */ + } - /* Tell the storage engine that we are using REPLACE semantics. */ - thd->lex->duplicates= DUP_REPLACE; - - /* - Pretend we're executing a REPLACE command: this is needed for - InnoDB and NDB Cluster since they are not (properly) checking the - lex->duplicates flag. - */ - thd->lex->sql_command= SQLCOM_REPLACE; - /* - Do not raise the error flag in case of hitting to an unique attribute - */ - m_table->file->extra(HA_EXTRA_IGNORE_DUP_KEY); - /* - NDB specific: update from ndb master wrapped as Write_rows - */ - /* - so that the event should be applied to replace slave's row - */ - m_table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE); - /* - NDB specific: if update from ndb master wrapped as Write_rows - does not find the row it's assumed idempotent binlog applying - is taking place; don't raise the error. - */ - m_table->file->extra(HA_EXTRA_IGNORE_NO_KEY); - /* - TODO: the cluster team (Tomas?) says that it's better if the engine knows - how many rows are going to be inserted, then it can allocate needed memory - from the start. - */ m_table->file->ha_start_bulk_insert(0); /* We need TIMESTAMP_NO_AUTO_SET otherwise ha_write_row() will not use fill @@ -7248,18 +7400,23 @@ Write_rows_log_event::do_before_row_operations(const Slave_reporting_capability } int -Write_rows_log_event::do_after_row_operations(const Slave_reporting_capability *const, +Write_rows_log_event::do_after_row_operations(const Slave_reporting_capability *const, int error) { int local_error= 0; - m_table->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY); - m_table->file->extra(HA_EXTRA_WRITE_CANNOT_REPLACE); - /* - reseting the extra with - table->file->extra(HA_EXTRA_NO_IGNORE_NO_KEY); - fires bug#27077 - todo: explain or fix - */ + if (bit_is_set(slave_exec_mode, SLAVE_EXEC_MODE_IDEMPOTENT) == 1 || + m_table->s->db_type()->db_type == DB_TYPE_NDBCLUSTER) + { + m_table->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY); + m_table->file->extra(HA_EXTRA_WRITE_CANNOT_REPLACE); + /* + resetting the extra with + table->file->extra(HA_EXTRA_NO_IGNORE_NO_KEY); + fires bug#27077 + explanation: file->reset() performs this duty + ultimately. Still todo: fix + */ + } if ((local_error= m_table->file->ha_end_bulk_insert())) { m_table->file->print_error(local_error, MYF(0)); @@ -7378,23 +7535,22 @@ Rows_log_event::write_row(const Relay_log_info *const rli, while ((error= table->file->ha_write_row(table->record[0]))) { - if (error == HA_ERR_LOCK_DEADLOCK || error == HA_ERR_LOCK_WAIT_TIMEOUT) - { - table->file->print_error(error, MYF(0)); /* to check at exec_relay_log_event */ - DBUG_RETURN(error); - } - if ((keynum= table->file->get_dup_key(error)) < 0) + if (error == HA_ERR_LOCK_DEADLOCK || + error == HA_ERR_LOCK_WAIT_TIMEOUT || + (keynum= table->file->get_dup_key(error)) < 0 || + !overwrite) { - DBUG_PRINT("info",("Can't locate duplicate key (get_dup_key returns %d)",keynum)); - table->file->print_error(error, MYF(0)); + DBUG_PRINT("info",("get_dup_key returns %d)", keynum)); /* - We failed to retrieve the duplicate key + Deadlock, waiting for lock or just an error from the handler + such as HA_ERR_FOUND_DUPP_KEY when overwrite is false. + Retrieval of the duplicate key number may fail - either because the error was not "duplicate key" error - or because the information which key is not available */ + table->file->print_error(error, MYF(0)); DBUG_RETURN(error); } - /* We need to retrieve the old row into record[1] to be able to either update or delete the offending record. We either: @@ -7532,11 +7688,13 @@ int Write_rows_log_event::do_exec_row(const Relay_log_info *const rli) { DBUG_ASSERT(m_table != NULL); - int error= write_row(rli, TRUE /* overwrite */); - + int error= + write_row(rli, /* if 1 then overwrite */ + bit_is_set(slave_exec_mode, SLAVE_EXEC_MODE_IDEMPOTENT) == 1); + if (error && !thd->net.last_errno) thd->net.last_errno= error; - + return error; } diff --git a/sql/log_event.h b/sql/log_event.h index 4bd496af2a4..0275b02dd49 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -809,6 +809,12 @@ public: bool cache_stmt; + /** + A storage to cache the global system variable's value. + Handling of a separate event will be governed its member. + */ + ulong slave_exec_mode; + #ifndef MYSQL_CLIENT THD* thd; diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 12838317646..f88d7fb6fc9 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -1812,6 +1812,7 @@ extern uint volatile thread_count, thread_running, global_read_lock; extern my_bool opt_sql_bin_update, opt_safe_user_create, opt_no_mix_types; extern my_bool opt_safe_show_db, opt_local_infile, opt_myisam_use_mmap; extern my_bool opt_slave_compressed_protocol, use_temp_pool; +extern ulong slave_exec_mode_options; extern my_bool opt_readonly, lower_case_file_system; extern my_bool opt_enable_named_pipe, opt_sync_frm, opt_allow_suspicious_udfs; extern my_bool opt_secure_auth; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 9e947470ca1..4fdaa101f16 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -445,6 +445,8 @@ ulong thread_stack, what_to_log; ulong query_buff_size, slow_launch_time, slave_open_temp_tables; ulong open_files_limit, max_binlog_size, max_relay_log_size; ulong slave_net_timeout, slave_trans_retries; +ulong slave_exec_mode_options; +const char *slave_exec_mode_str= "STRICT"; ulong thread_cache_size=0, thread_pool_size= 0; ulong binlog_cache_size=0, max_binlog_cache_size=0; ulong query_cache_size=0; @@ -5105,7 +5107,8 @@ enum options_mysqld OPT_SECURE_FILE_PRIV, OPT_MIN_EXAMINED_ROW_LIMIT, OPT_LOG_SLOW_SLAVE_STATEMENTS, - OPT_OLD_MODE + OPT_OLD_MODE, + OPT_SLAVE_EXEC_MODE }; @@ -5803,8 +5806,11 @@ replicating a LOAD DATA INFILE command.", (uchar**) &slave_load_tmpdir, (uchar**) &slave_load_tmpdir, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, {"slave-skip-errors", OPT_SLAVE_SKIP_ERRORS, - "Tells the slave thread to continue replication when a query returns an error from the provided list.", + "Tells the slave thread to continue replication when a query event returns an error from the provided list.", 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, + {"slave-exec-mode", OPT_SLAVE_EXEC_MODE, + "Modes for how replication events should be executed. Legal values are STRICT (default) and IDEMPOTENT. In IDEMPOTENT mode, replication will not stop for operations that are idempotent. In STRICT mode, replication will stop on any unexpected difference between the master and the slave.", + (uchar**) &slave_exec_mode_str, (uchar**) &slave_exec_mode_str, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, #endif {"slow-query-log", OPT_SLOW_LOG, "Enable|disable slow query log", (uchar**) &opt_slow_log, @@ -7113,6 +7119,9 @@ static void mysql_init_variables(void) /* Things with default values that are not zero */ delay_key_write_options= (uint) DELAY_KEY_WRITE_ON; + slave_exec_mode_options= 0; + slave_exec_mode_options= (uint) + find_bit_type_or_exit(slave_exec_mode_str, &slave_exec_mode_typelib, NULL); opt_specialflag= SPECIAL_ENGLISH; unix_sock= ip_sock= INVALID_SOCKET; mysql_home_ptr= mysql_home; @@ -7322,6 +7331,10 @@ mysqld_get_one_option(int optid, case OPT_SLAVE_SKIP_ERRORS: init_slave_skip_errors(argument); break; + case OPT_SLAVE_EXEC_MODE: + slave_exec_mode_options= (uint) + find_bit_type_or_exit(argument, &slave_exec_mode_typelib, ""); + break; #endif case OPT_SAFEMALLOC_MEM_LIMIT: #if !defined(DBUG_OFF) && defined(SAFEMALLOC) @@ -7867,6 +7880,8 @@ static void get_options(int *argc,char **argv) } /* Set global MyISAM variables from delay_key_write_options */ fix_delay_key_write((THD*) 0, OPT_GLOBAL); + /* Set global slave_exec_mode from its option */ + fix_slave_exec_mode(OPT_GLOBAL); #ifndef EMBEDDED_LIBRARY if (mysqld_chroot) diff --git a/sql/opt_range.cc b/sql/opt_range.cc index 99c28be36b0..c67687b2bde 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -3344,18 +3344,16 @@ static bool create_partition_index_description(PART_PRUNE_PARAM *ppar) { key_part->key= 0; key_part->part= part; - key_part->length= (uint16) (*field)->pack_length_in_rec(); - /* - psergey-todo: check yet again if this is correct for tricky field types, - e.g. see "Fix a fatal error in decimal key handling" in open_binary_frm() - */ - key_part->store_length= (uint16) (*field)->pack_length(); + key_part->store_length= key_part->length= (uint16) (*field)->key_length(); if ((*field)->real_maybe_null()) key_part->store_length+= HA_KEY_NULL_LENGTH; if ((*field)->type() == MYSQL_TYPE_BLOB || (*field)->real_type() == MYSQL_TYPE_VARCHAR) key_part->store_length+= HA_KEY_BLOB_LENGTH; + DBUG_PRINT("info", ("part %u length %u store_length %u", part, + key_part->length, key_part->store_length)); + key_part->field= (*field); key_part->image_type = Field::itRAW; /* @@ -7352,6 +7350,9 @@ check_quick_keys(PARAM *param, uint idx, SEL_ARG *key_tree, tmp_max_flag= max_key_flag | key_tree->max_flag; } + if (unlikely(param->thd->killed != 0)) + return HA_POS_ERROR; + keynr=param->real_keynr[idx]; param->range_count++; if (!tmp_min_flag && ! tmp_max_flag && diff --git a/sql/opt_range.h b/sql/opt_range.h index dd219129167..4f5cce28bf2 100644 --- a/sql/opt_range.h +++ b/sql/opt_range.h @@ -24,9 +24,14 @@ #endif typedef struct st_key_part { - uint16 key,part, store_length, length; + uint16 key,part; + /* See KEY_PART_INFO for meaning of the next two: */ + uint16 store_length, length; uint8 null_bit; - /* Keypart flags (0 if partition pruning is used) */ + /* + Keypart flags (0 when this structure is used by partition pruning code + for fake partitioning index description) + */ uint8 flag; Field *field; Field::imagetype image_type; diff --git a/sql/opt_sum.cc b/sql/opt_sum.cc index 6836c53db4e..12ad504d738 100644 --- a/sql/opt_sum.cc +++ b/sql/opt_sum.cc @@ -295,14 +295,15 @@ int opt_sum_query(TABLE_LIST *tables, List<Item> &all_fields,COND *conds) Check if case 1 from above holds. If it does, we should read the skipped tuple. */ - if (ref.key_buff[prefix_len] == 1 && - /* + if (item_field->field->real_maybe_null() && + ref.key_buff[prefix_len] == 1 && + /* Last keypart (i.e. the argument to MIN) is set to NULL by find_key_for_maxmin only if all other keyparts are bound to constants in a conjunction of equalities. Hence, we can detect this by checking only if the last keypart is NULL. - */ + */ (error == HA_ERR_KEY_NOT_FOUND || key_cmp_if_same(table, ref.key_buff, ref.key, prefix_len))) { diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc index 15d7d97affd..c28d1ba97f7 100644 --- a/sql/rpl_rli.cc +++ b/sql/rpl_rli.cc @@ -1160,6 +1160,11 @@ void Relay_log_info::cleanup_context(THD *thd, bool error) close_thread_tables(thd); clear_tables_to_lock(); clear_flag(IN_STMT); + /* + Cleanup for the flags that have been set at do_apply_event. + */ + thd->options&= ~OPTION_NO_FOREIGN_KEY_CHECKS; + thd->options&= ~OPTION_RELAXED_UNIQUE_CHECKS; last_event_start_time= 0; DBUG_VOID_RETURN; } diff --git a/sql/set_var.cc b/sql/set_var.cc index 11874b1020c..8b238fea142 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -88,6 +88,16 @@ TYPELIB delay_key_write_typelib= delay_key_write_type_names, NULL }; +const char *slave_exec_mode_names[]= +{ "STRICT", "IDEMPOTENT", NullS }; +static const unsigned int slave_exec_mode_names_len[]= +{ sizeof("STRICT") - 1, sizeof("IDEMPOTENT") - 1, 0 }; +TYPELIB slave_exec_mode_typelib= +{ + array_elements(slave_exec_mode_names)-1, "", + slave_exec_mode_names, (unsigned int *) slave_exec_mode_names_len +}; + static int sys_check_ftb_syntax(THD *thd, set_var *var); static bool sys_update_ftb_syntax(THD *thd, set_var * var); static void sys_default_ftb_syntax(THD *thd, enum_var_type type); @@ -408,6 +418,11 @@ static sys_var_const_str_ptr sys_secure_file_priv(&vars, "secure_file_priv", static sys_var_long_ptr sys_server_id(&vars, "server_id", &server_id, fix_server_id); static sys_var_bool_ptr sys_slave_compressed_protocol(&vars, "slave_compressed_protocol", &opt_slave_compressed_protocol); +static sys_var_set_slave_mode slave_exec_mode(&vars, + "slave_exec_mode", + &slave_exec_mode_options, + &slave_exec_mode_typelib, + 0); static sys_var_long_ptr sys_slow_launch_time(&vars, "slow_launch_time", &slow_launch_time); static sys_var_thd_ulong sys_sort_buffer(&vars, "sort_buffer_size", @@ -641,8 +656,14 @@ static sys_var_const_str sys_license(&vars, "license", STRINGIFY_ARG(LICENSE)); /* Global variables which enable|disable logging */ static sys_var_log_state sys_var_general_log(&vars, "general_log", &opt_log, QUERY_LOG_GENERAL); +/* Synonym of "general_log" for consistency with SHOW VARIABLES output */ +static sys_var_log_state sys_var_log(&vars, "log", &opt_log, + QUERY_LOG_GENERAL); static sys_var_log_state sys_var_slow_query_log(&vars, "slow_query_log", &opt_slow_log, QUERY_LOG_SLOW); +/* Synonym of "slow_query_log" for consistency with SHOW VARIABLES output */ +static sys_var_log_state sys_var_log_slow(&vars, "log_slow_queries", + &opt_slow_log, QUERY_LOG_SLOW); sys_var_str sys_var_general_log_path(&vars, "general_log_file", sys_check_log_path, sys_update_general_log_path, sys_default_general_log_path, @@ -678,10 +699,8 @@ static SHOW_VAR fixed_vars[]= { #ifdef HAVE_MLOCKALL {"locked_in_memory", (char*) &locked_in_memory, SHOW_MY_BOOL}, #endif - {"log", (char*) &opt_log, SHOW_MY_BOOL}, {"log_bin", (char*) &opt_bin_log, SHOW_BOOL}, {"log_error", (char*) log_error_file, SHOW_CHAR}, - {"log_slow_queries", (char*) &opt_slow_log, SHOW_MY_BOOL}, {"lower_case_file_system", (char*) &lower_case_file_system, SHOW_MY_BOOL}, {"lower_case_table_names", (char*) &lower_case_table_names, SHOW_INT}, {"myisam_recover_options", (char*) &myisam_recover_options_str, SHOW_CHAR_PTR}, @@ -981,6 +1000,79 @@ extern void fix_delay_key_write(THD *thd, enum_var_type type) } } +bool sys_var_set::update(THD *thd, set_var *var) +{ + *value= var->save_result.ulong_value; + return 0; +}; + +uchar *sys_var_set::value_ptr(THD *thd, enum_var_type type, + LEX_STRING *base) +{ + char buff[256]; + String tmp(buff, sizeof(buff), &my_charset_latin1); + ulong length; + ulong val= *value; + + tmp.length(0); + for (uint i= 0; val; val>>= 1, i++) + { + if (val & 1) + { + tmp.append(enum_names->type_names[i], + enum_names->type_lengths[i]); + tmp.append(','); + } + } + + if ((length= tmp.length())) + length--; + return (uchar*) thd->strmake(tmp.ptr(), length); +} + +void sys_var_set_slave_mode::set_default(THD *thd, enum_var_type type) +{ + slave_exec_mode_options= 0; + bit_do_set(slave_exec_mode_options, SLAVE_EXEC_MODE_STRICT); +} + +bool sys_var_set_slave_mode::check(THD *thd, set_var *var) +{ + bool rc= sys_var_set::check(thd, var); + if (!rc && + bit_is_set(var->save_result.ulong_value, SLAVE_EXEC_MODE_STRICT) == 1 && + bit_is_set(var->save_result.ulong_value, SLAVE_EXEC_MODE_IDEMPOTENT) == 1) + { + rc= true; + my_error(ER_SLAVE_AMBIGOUS_EXEC_MODE, MYF(0), ""); + } + return rc; +} + +bool sys_var_set_slave_mode::update(THD *thd, set_var *var) +{ + bool rc; + pthread_mutex_lock(&LOCK_global_system_variables); + rc= sys_var_set::update(thd, var); + pthread_mutex_unlock(&LOCK_global_system_variables); + return rc; +} + +void fix_slave_exec_mode(enum_var_type type) +{ + DBUG_ENTER("fix_slave_exec_mode"); + compile_time_assert(sizeof(slave_exec_mode_options) * CHAR_BIT + > SLAVE_EXEC_MODE_LAST_BIT - 1); + if (bit_is_set(slave_exec_mode_options, SLAVE_EXEC_MODE_STRICT) == 1 && + bit_is_set(slave_exec_mode_options, SLAVE_EXEC_MODE_IDEMPOTENT) == 1) + { + sql_print_error("Ambiguous slave modes combination." + " STRICT will be used"); + bit_do_clear(slave_exec_mode_options, SLAVE_EXEC_MODE_IDEMPOTENT); + } + if (bit_is_set(slave_exec_mode_options, SLAVE_EXEC_MODE_IDEMPOTENT) == 0) + bit_do_set(slave_exec_mode_options, SLAVE_EXEC_MODE_STRICT); +} bool sys_var_thd_binlog_format::is_readonly() const { @@ -3165,7 +3257,18 @@ int set_var::light_check(THD *thd) return 0; } +/** + Update variable + @param thd thread handler + @returns 0|1 ok or ERROR + + @note ERROR can be only due to abnormal operations involving + the server's execution evironment such as + out of memory, hard disk failure or the computer blows up. + Consider set_var::check() method if there is a need to return + an error due to logics. +*/ int set_var::update(THD *thd) { if (!value) diff --git a/sql/set_var.h b/sql/set_var.h index eb2c893c89e..6f44f7889d2 100644 --- a/sql/set_var.h +++ b/sql/set_var.h @@ -30,7 +30,8 @@ class sys_var_pluginvar; /* opaque */ typedef struct system_variables SV; typedef struct my_locale_st MY_LOCALE; -extern TYPELIB bool_typelib, delay_key_write_typelib, sql_mode_typelib; +extern TYPELIB bool_typelib, delay_key_write_typelib, sql_mode_typelib, + slave_exec_mode_typelib; typedef int (*sys_check_func)(THD *, set_var *); typedef bool (*sys_update_func)(THD *, set_var *); @@ -771,6 +772,42 @@ public: }; +class sys_var_set :public sys_var +{ +protected: + ulong *value; + TYPELIB *enum_names; +public: + sys_var_set(sys_var_chain *chain, const char *name_arg, ulong *value_arg, + TYPELIB *typelib, sys_after_update_func func) + :sys_var(name_arg, func), value(value_arg), enum_names(typelib) + { chain_sys_var(chain); } + virtual bool check(THD *thd, set_var *var) + { + return check_set(thd, var, enum_names); + } + virtual void set_default(THD *thd, enum_var_type type) + { + *value= 0; + } + bool update(THD *thd, set_var *var); + uchar *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base); + bool check_update_type(Item_result type) { return 0; } + SHOW_TYPE show_type() { return SHOW_CHAR; } +}; + +class sys_var_set_slave_mode :public sys_var_set +{ +public: + sys_var_set_slave_mode(sys_var_chain *chain, const char *name_arg, + ulong *value_arg, + TYPELIB *typelib, sys_after_update_func func) : + sys_var_set(chain, name_arg, value_arg, typelib, func) {} + void set_default(THD *thd, enum_var_type type); + bool check(THD *thd, set_var *var); + bool update(THD *thd, set_var *var); +}; + class sys_var_log_output :public sys_var { ulong *value; @@ -1189,6 +1226,7 @@ sys_var *find_sys_var(THD *thd, const char *str, uint length=0); int sql_set_variables(THD *thd, List<set_var_base> *var_list); bool not_all_support_one_shot(List<set_var_base> *var_list); void fix_delay_key_write(THD *thd, enum_var_type type); +void fix_slave_exec_mode(enum_var_type type); ulong fix_sql_mode(ulong sql_mode); extern sys_var_const_str sys_charset_system; extern sys_var_str sys_init_connect; diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index 8fad09eb221..dce1dd785bf 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -5658,6 +5658,8 @@ ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT eng "Too high level of nesting for select" ER_NAME_BECOMES_EMPTY eng "Name '%-.64s' has become ''" +ER_AMBIGUOUS_FIELD_TERM + eng "First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY" ER_FOREIGN_SERVER_EXISTS eng "The foreign server, %s, you are trying to create already exists." ER_FOREIGN_SERVER_DOESNT_EXIST @@ -5667,9 +5669,9 @@ ER_ILLEGAL_HA_CREATE_OPTION eng "Table storage engine '%-.64s' does not support the create option '%.64s'" ger "Speicher-Engine '%-.64s' der Tabelle unterstützt die Option '%.64s' nicht" ER_PARTITION_REQUIRES_VALUES_ERROR - eng "%-.64s PARTITIONING requires definition of VALUES %-.64s for each partition" - ger "%-.64s-PARTITIONierung erfordert Definition von VALUES %-.64s für jede Partition" - swe "%-.64s PARTITIONering kräver definition av VALUES %-.64s för varje partition" + eng "Syntax error: %-.64s PARTITIONING requires definition of VALUES %-.64s for each partition" + ger "Fehler in der SQL-Syntax: %-.64s-PARTITIONierung erfordert Definition von VALUES %-.64s für jede Partition" + swe "Syntaxfel: %-.64s PARTITIONering kräver definition av VALUES %-.64s för varje partition" ER_PARTITION_WRONG_VALUES_ERROR eng "Only %-.64s PARTITIONING can use VALUES %-.64s in partition definition" ger "Nur %-.64s-PARTITIONierung kann VALUES %-.64s in der Partitionsdefinition verwenden" @@ -6112,3 +6114,5 @@ ER_TRG_CANT_OPEN_TABLE ER_CANT_CREATE_SROUTINE eng "Cannot create stored routine `%-.64s`. Check warnings" +ER_SLAVE_AMBIGOUS_EXEC_MODE + eng "Ambiguous slave modes combination. %s" diff --git a/sql/slave.cc b/sql/slave.cc index d681da23491..b6611d44723 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -1510,6 +1510,7 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type) delete thd; DBUG_RETURN(-1); } + lex_start(thd); if (thd_type == SLAVE_THD_SQL) thd->proc_info= "Waiting for the next event in relay log"; diff --git a/sql/sp_rcontext.cc b/sql/sp_rcontext.cc index 60a0c962c28..70a043c4fac 100644 --- a/sql/sp_rcontext.cc +++ b/sql/sp_rcontext.cc @@ -503,14 +503,14 @@ sp_cursor::fetch(THD *thd, List<struct sp_variable> *vars) */ Item_cache * -sp_rcontext::create_case_expr_holder(THD *thd, Item_result result_type) +sp_rcontext::create_case_expr_holder(THD *thd, const Item *item) { Item_cache *holder; Query_arena current_arena; thd->set_n_backup_active_arena(thd->spcont->callers_arena, ¤t_arena); - holder= Item_cache::get_cache(result_type); + holder= Item_cache::get_cache(item); thd->restore_active_arena(thd->spcont->callers_arena, ¤t_arena); @@ -559,7 +559,7 @@ sp_rcontext::set_case_expr(THD *thd, int case_expr_id, Item **case_expr_item_ptr case_expr_item->result_type()) { m_case_expr_holders[case_expr_id]= - create_case_expr_holder(thd, case_expr_item->result_type()); + create_case_expr_holder(thd, case_expr_item); } m_case_expr_holders[case_expr_id]->store(case_expr_item); diff --git a/sql/sp_rcontext.h b/sql/sp_rcontext.h index 0104b71a648..43102cfeeb2 100644 --- a/sql/sp_rcontext.h +++ b/sql/sp_rcontext.h @@ -261,7 +261,7 @@ private: bool init_var_table(THD *thd); bool init_var_items(); - Item_cache *create_case_expr_holder(THD *thd, Item_result result_type); + Item_cache *create_case_expr_holder(THD *thd, const Item *item); int set_variable(THD *thd, Field *field, Item **value); }; // class sp_rcontext : public Sql_alloc diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 070a943da9e..311b76c6149 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -277,6 +277,7 @@ my_bool acl_init(bool dont_read_acl_tables) DBUG_RETURN(1); /* purecov: inspected */ thd->thread_stack= (char*) &thd; thd->store_globals(); + lex_start(thd); /* It is safe to call acl_reload() since acl_* arrays and hashes which will be freed there are global static objects and thus are initialized @@ -3493,6 +3494,7 @@ my_bool grant_init() DBUG_RETURN(1); /* purecov: deadcode */ thd->thread_stack= (char*) &thd; thd->store_globals(); + lex_start(thd); return_val= grant_reload(thd); delete thd; /* Remember that we don't have a THD */ diff --git a/sql/sql_base.cc b/sql/sql_base.cc index ddc5f88f577..6896ccd1b8c 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -2289,6 +2289,9 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root, HASH_SEARCH_STATE state; DBUG_ENTER("open_table"); + /* Parsing of partitioning information from .frm needs thd->lex set up. */ + DBUG_ASSERT(thd->lex->is_lex_started); + /* find a unused table in the open table cache */ if (refresh) *refresh=0; @@ -5160,7 +5163,9 @@ find_field_in_tables(THD *thd, Item_ident *item, { Field *cur_field= find_field_in_table_ref(thd, cur_table, name, length, item->name, db, table_name, ref, - check_privileges, + (thd->lex->sql_command == + SQLCOM_SHOW_FIELDS) + ? false : check_privileges, allow_rowid, &(item->cached_field_index), register_tree_change, @@ -5354,7 +5359,8 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter, if (item_field->field_name && item_field->table_name && !my_strcasecmp(system_charset_info, item_field->field_name, field_name) && - !strcmp(item_field->table_name, table_name) && + !my_strcasecmp(table_alias_charset, item_field->table_name, + table_name) && (!db_name || (item_field->db_name && !strcmp(item_field->db_name, db_name)))) { diff --git a/sql/sql_class.cc b/sql/sql_class.cc index a904023cbff..bf8413e8627 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1554,6 +1554,7 @@ int select_export::prepare(List<Item> &list, SELECT_LEX_UNIT *u) { bool blob_flag=0; + bool string_results= FALSE, non_string_results= FALSE; unit= u; if ((uint) strlen(exchange->file_name) + NAME_LEN >= FN_REFLEN) strmake(path,exchange->file_name,FN_REFLEN-1); @@ -1571,13 +1572,18 @@ select_export::prepare(List<Item> &list, SELECT_LEX_UNIT *u) blob_flag=1; break; } + if (item->result_type() == STRING_RESULT) + string_results= TRUE; + else + non_string_results= TRUE; } } field_term_length=exchange->field_term->length(); + field_term_char= field_term_length ? (*exchange->field_term)[0] : INT_MAX; if (!exchange->line_term->length()) exchange->line_term=exchange->field_term; // Use this if it exists field_sep_char= (exchange->enclosed->length() ? (*exchange->enclosed)[0] : - field_term_length ? (*exchange->field_term)[0] : INT_MAX); + field_term_char); escape_char= (exchange->escaped->length() ? (*exchange->escaped)[0] : -1); is_ambiguous_field_sep= test(strchr(ESCAPE_CHARS, field_sep_char)); is_unsafe_field_sep= test(strchr(NUMERIC_CHARS, field_sep_char)); @@ -1589,12 +1595,25 @@ select_export::prepare(List<Item> &list, SELECT_LEX_UNIT *u) exchange->opt_enclosed=1; // A little quicker loop fixed_row_size= (!field_term_length && !exchange->enclosed->length() && !blob_flag); + if ((is_ambiguous_field_sep && exchange->enclosed->is_empty() && + (string_results || is_unsafe_field_sep)) || + (exchange->opt_enclosed && non_string_results && + field_term_length && strchr(NUMERIC_CHARS, field_term_char))) + { + push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_AMBIGUOUS_FIELD_TERM, ER(ER_AMBIGUOUS_FIELD_TERM)); + is_ambiguous_field_term= TRUE; + } + else + is_ambiguous_field_term= FALSE; + return 0; } #define NEED_ESCAPING(x) ((int) (uchar) (x) == escape_char || \ - (int) (uchar) (x) == field_sep_char || \ + (enclosed ? (int) (uchar) (x) == field_sep_char \ + : (int) (uchar) (x) == field_term_char) || \ (int) (uchar) (x) == line_sep_char || \ !(x)) @@ -1623,8 +1642,10 @@ bool select_export::send_data(List<Item> &items) while ((item=li++)) { Item_result result_type=item->result_type(); + bool enclosed = (exchange->enclosed->length() && + (!exchange->opt_enclosed || result_type == STRING_RESULT)); res=item->str_result(&tmp); - if (res && (!exchange->opt_enclosed || result_type == STRING_RESULT)) + if (res && enclosed) { if (my_b_write(&cache,(uchar*) exchange->enclosed->ptr(), exchange->enclosed->length())) @@ -1715,11 +1736,16 @@ bool select_export::send_data(List<Item> &items) DBUG_ASSERT before the loop makes that sure. */ - if (NEED_ESCAPING(*pos) || - (check_second_byte && - my_mbcharlen(character_set_client, (uchar) *pos) == 2 && - pos + 1 < end && - NEED_ESCAPING(pos[1]))) + if ((NEED_ESCAPING(*pos) || + (check_second_byte && + my_mbcharlen(character_set_client, (uchar) *pos) == 2 && + pos + 1 < end && + NEED_ESCAPING(pos[1]))) && + /* + Don't escape field_term_char by doubling - doubling is only + valid for ENCLOSED BY characters: + */ + (enclosed || !is_ambiguous_field_term || *pos != field_term_char)) { char tmp_buff[2]; tmp_buff[0]= ((int) *pos == field_sep_char && @@ -1758,7 +1784,7 @@ bool select_export::send_data(List<Item> &items) goto err; } } - if (res && (!exchange->opt_enclosed || result_type == STRING_RESULT)) + if (res && enclosed) { if (my_b_write(&cache, (uchar*) exchange->enclosed->ptr(), exchange->enclosed->length())) @@ -1887,7 +1913,7 @@ bool select_max_min_finder_subselect::send_data(List<Item> &items) { if (!cache) { - cache= Item_cache::get_cache(val_item->result_type()); + cache= Item_cache::get_cache(val_item); switch (val_item->result_type()) { case REAL_RESULT: diff --git a/sql/sql_class.h b/sql/sql_class.h index 439f451814f..8d55baecb80 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -38,6 +38,9 @@ enum enum_ha_read_modes { RFIRST, RNEXT, RPREV, RLAST, RKEY, RNEXT_SAME }; enum enum_duplicates { DUP_ERROR, DUP_REPLACE, DUP_UPDATE }; enum enum_delay_key_write { DELAY_KEY_WRITE_NONE, DELAY_KEY_WRITE_ON, DELAY_KEY_WRITE_ALL }; +enum enum_slave_exec_mode { SLAVE_EXEC_MODE_STRICT, + SLAVE_EXEC_MODE_IDEMPOTENT, + SLAVE_EXEC_MODE_LAST_BIT}; enum enum_mark_columns { MARK_COLUMNS_NONE, MARK_COLUMNS_READ, MARK_COLUMNS_WRITE}; @@ -1368,9 +1371,20 @@ public: ulonglong limit_found_rows; ulonglong options; /* Bitmap of states */ - longlong row_count_func; /* For the ROW_COUNT() function */ - ha_rows cuted_fields, - sent_row_count, examined_row_count; + longlong row_count_func; /* For the ROW_COUNT() function */ + ha_rows cuted_fields; + + /* + number of rows we actually sent to the client, including "synthetic" + rows in ROLLUP etc. + */ + ha_rows sent_row_count; + + /* + number of rows we read, sent or not, including in create_sort_index() + */ + ha_rows examined_row_count; + /* The set of those tables whose fields are referenced in all subqueries of the query. @@ -1406,7 +1420,11 @@ public: /* Statement id is thread-wide. This counter is used to generate ids */ ulong statement_id_counter; ulong rand_saved_seed1, rand_saved_seed2; - ulong row_count; // Row counter, mainly for errors and warnings + /* + Row counter, mainly for errors and warnings. Not increased in + create_sort_index(); may differ from examined_row_count. + */ + ulong row_count; pthread_t real_id; /* For debugging */ my_thread_id thread_id; uint tmp_table, global_read_lock; @@ -2100,6 +2118,7 @@ public: class select_export :public select_to_file { uint field_term_length; int field_sep_char,escape_char,line_sep_char; + int field_term_char; // first char of FIELDS TERMINATED BY or MAX_INT /* The is_ambiguous_field_sep field is true if a value of the field_sep_char field is one of the 'n', 't', 'r' etc characters @@ -2107,6 +2126,12 @@ class select_export :public select_to_file { */ bool is_ambiguous_field_sep; /* + The is_ambiguous_field_term is true if field_sep_char contains the first + char of the FIELDS TERMINATED BY (ENCLOSED BY is empty), and items can + contain this character. + */ + bool is_ambiguous_field_term; + /* The is_unsafe_field_sep field is true if a value of the field_sep_char field is one of the '0'..'9', '+', '-', '.' and 'e' characters (see the NUMERIC_CHARS constant value). diff --git a/sql/sql_connect.cc b/sql/sql_connect.cc index 68872f85cd4..76237576764 100644 --- a/sql/sql_connect.cc +++ b/sql/sql_connect.cc @@ -1120,6 +1120,7 @@ pthread_handler_t handle_one_connection(void *arg) { NET *net= &thd->net; + lex_start(thd); if (login_connection(thd)) goto end_thread; diff --git a/sql/sql_db.cc b/sql/sql_db.cc index abbf2131957..ad4e0d803eb 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -883,6 +883,13 @@ bool mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent) VOID(pthread_mutex_lock(&LOCK_mysql_create_db)); + /* + This statement will be replicated as a statement, even when using + row-based replication. The flag will be reset at the end of the + statement. + */ + thd->clear_current_stmt_binlog_row_based(); + length= build_table_filename(path, sizeof(path), db, "", "", 0); strmov(path+length, MY_DB_OPT_FILE); // Append db option file name del_dbopt(path); // Remove dboption hash entry diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index b7806c21466..96894fac5ec 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -2266,7 +2266,12 @@ pthread_handler_t handle_delayed_insert(void *arg) goto err; } - /* open table */ + /* + Open table requires an initialized lex in case the table is + partitioned. The .frm file contains a partial SQL string which is + parsed using a lex, that depends on initialized thd->lex. + */ + lex_start(thd); if (!(di->table=open_ltable(thd, &di->table_list, TL_WRITE_DELAYED, 0))) { thd->fatal_error(); // Abort waiting inserts diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 4ee66cb1e8d..7d6f21cad05 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -363,6 +363,7 @@ void lex_start(THD *thd) lex->server_options.owner= 0; lex->server_options.port= -1; + lex->is_lex_started= TRUE; DBUG_VOID_RETURN; } @@ -2139,7 +2140,7 @@ void Query_tables_list::destroy_query_tables_list() st_lex::st_lex() :result(0), yacc_yyss(0), yacc_yyvs(0), - sql_command(SQLCOM_END), option_type(OPT_DEFAULT) + sql_command(SQLCOM_END), option_type(OPT_DEFAULT), is_lex_started(0) { my_init_dynamic_array2(&plugins, sizeof(plugin_ref), diff --git a/sql/sql_lex.h b/sql/sql_lex.h index 507d64daf89..da0ff94ec96 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -1712,6 +1712,7 @@ typedef struct st_lex : public Query_tables_list st_alter_tablespace *alter_tablespace_info; bool escape_used; + bool is_lex_started; /* If lex_start() did run. For debugging. */ st_lex(); diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 0cc2cac2a1a..a06ad0a4612 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -1856,6 +1856,20 @@ static int add_uint(File fptr, ulonglong number) return add_string(fptr, buff); } +/* + Must escape strings in partitioned tables frm-files, + parsing it later with mysql_unpack_partition will fail otherwise. +*/ +static int add_quoted_string(File fptr, const char *quotestr) +{ + String orgstr(quotestr, system_charset_info); + String escapedstr; + int err= add_string(fptr, "'"); + err+= append_escaped(&escapedstr, &orgstr); + err+= add_string(fptr, escapedstr.c_ptr_safe()); + return err + add_string(fptr, "'"); +} + static int add_keyword_string(File fptr, const char *keyword, bool should_use_quotes, const char *keystr) @@ -1866,10 +1880,9 @@ static int add_keyword_string(File fptr, const char *keyword, err+= add_equal(fptr); err+= add_space(fptr); if (should_use_quotes) - err+= add_string(fptr, "'"); - err+= add_string(fptr, keystr); - if (should_use_quotes) - err+= add_string(fptr, "'"); + err+= add_quoted_string(fptr, keystr); + else + err+= add_string(fptr, keystr); return err + add_space(fptr); } @@ -5031,7 +5044,10 @@ the generated partition syntax in a correct manner. *partition_changed= TRUE; } if (create_info->db_type == partition_hton) - part_info->default_engine_type= table->part_info->default_engine_type; + { + if (!part_info->default_engine_type) + part_info->default_engine_type= table->part_info->default_engine_type; + } else part_info->default_engine_type= create_info->db_type; if (check_native_partitioned(create_info, &is_native_partitioned, diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index 2af528f6699..ef4c63381e2 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -1329,6 +1329,7 @@ static void plugin_load(MEM_ROOT *tmp_root, int *argc, char **argv) } new_thd->thread_stack= (char*) &tables; new_thd->store_globals(); + lex_start(new_thd); new_thd->db= my_strdup("mysql", MYF(0)); new_thd->db_length= 5; bzero((uchar*)&tables, sizeof(tables)); @@ -1944,7 +1945,7 @@ static int check_func_enum(THD *thd, struct st_mysql_sys_var *var, length= sizeof(buff); if (!(str= value->val_str(value, buff, &length))) goto err; - if ((result= find_type(typelib, str, length, 1)-1) < 0) + if ((result= (long)find_type(typelib, str, length, 1)-1) < 0) { strvalue= str; goto err; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 862948e48a4..60f004cda71 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -571,11 +571,12 @@ JOIN::prepare(Item ***rref_pointer_array, /* - Check if one one uses a not constant column with group functions - and no GROUP BY. + Check if there are references to un-aggregated columns when computing + aggregate functions with implicit grouping (there is no GROUP BY). TODO: Add check of calculation of GROUP functions and fields: SELECT COUNT(*)+table.col1 from table1; */ + if (thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY) { if (!group_list) { @@ -589,6 +590,13 @@ JOIN::prepare(Item ***rref_pointer_array, else if (!(flag & 2) && !item->const_during_execution()) flag|=2; } + if (having) + { + if (having->with_sum_func) + flag |= 1; + else if (!having->const_during_execution()) + flag |= 2; + } if (flag == 3) { my_message(ER_MIX_OF_GROUP_FUNC_AND_FIELDS, @@ -1073,10 +1081,19 @@ JOIN::optimize() We have found that grouping can be removed since groups correspond to only one row anyway, but we still have to guarantee correct result order. The line below effectively rewrites the query from GROUP BY - <fields> to ORDER BY <fields>. One exception is if skip_sort_order is - set (see above), then we can simply skip GROUP BY. - */ - order= skip_sort_order ? 0 : group_list; + <fields> to ORDER BY <fields>. There are two exceptions: + - if skip_sort_order is set (see above), then we can simply skip + GROUP BY; + - we can only rewrite ORDER BY if the ORDER BY fields are 'compatible' + with the GROUP BY ones, i.e. either one is a prefix of another. + We only check if the ORDER BY is a prefix of GROUP BY. In this case + test_if_subpart() copies the ASC/DESC attributes from the original + ORDER BY fields. + If GROUP BY is a prefix of ORDER BY, then it is safe to leave + 'order' as is. + */ + if (!order || test_if_subpart(group_list, order)) + order= skip_sort_order ? 0 : group_list; /* If we have an IGNORE INDEX FOR GROUP BY(fields) clause, this must be rewritten to IGNORE INDEX FOR ORDER BY(fields). @@ -6282,10 +6299,9 @@ make_join_readinfo(JOIN *join, ulonglong options) ordered. If there is a temp table the ordering is done as a last operation and doesn't prevent join cache usage. */ - if (!ordered_set && !join->need_tmp && - ((table == join->sort_by_table && - (!join->order || join->skip_sort_order)) || - (join->sort_by_table == (TABLE *) 1 && i != join->const_tables))) + if (!ordered_set && !join->need_tmp && + (table == join->sort_by_table || + (join->sort_by_table == (TABLE *) 1 && i != join->const_tables))) ordered_set= 1; tab->sorted= sorted; @@ -10648,6 +10664,15 @@ do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure) error= (*end_select)(join, 0, 0); if (error == NESTED_LOOP_OK || error == NESTED_LOOP_QUERY_LIMIT) error= (*end_select)(join, 0, 1); + + /* + If we don't go through evaluate_join_record(), do the counting + here. join->send_records is increased on success in end_send(), + so we don't touch it here. + */ + join->examined_rows++; + join->thd->row_count++; + DBUG_ASSERT(join->examined_rows <= 1); } else if (join->send_row_on_empty_set()) { @@ -15818,6 +15843,10 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order, /* Add "rows" field to item_list. */ if (table_list->schema_table) { + /* in_rows */ + if (join->thd->lex->describe & DESCRIBE_EXTENDED) + item_list.push_back(item_null); + /* rows */ item_list.push_back(item_null); } else @@ -16196,8 +16225,21 @@ void TABLE_LIST::print(THD *thd, String *str) } if (my_strcasecmp(table_alias_charset, cmp_name, alias)) { + char t_alias_buff[MAX_ALIAS_NAME]; + const char *t_alias= alias; + str->append(' '); - append_identifier(thd, str, alias, strlen(alias)); + if (lower_case_table_names== 1) + { + if (alias && alias[0]) + { + strmov(t_alias_buff, alias); + my_casedn_str(files_charset_info, t_alias_buff); + t_alias= t_alias_buff; + } + } + + append_identifier(thd, str, t_alias, strlen(t_alias)); } if (index_hints) diff --git a/sql/sql_servers.cc b/sql/sql_servers.cc index a780c561ffe..602c289a605 100644 --- a/sql/sql_servers.cc +++ b/sql/sql_servers.cc @@ -140,6 +140,7 @@ bool servers_init(bool dont_read_servers_table) DBUG_RETURN(TRUE); thd->thread_stack= (char*) &thd; thd->store_globals(); + lex_start(thd); /* It is safe to call servers_reload() since servers_* arrays and hashes which will be freed there are global static objects and thus are initialized @@ -289,7 +290,7 @@ get_server_from_table_to_cache(TABLE *table) { /* alloc a server struct */ char *ptr; - char *blank= (char*)""; + char * const blank= (char*)""; FOREIGN_SERVER *server= (FOREIGN_SERVER *)alloc_root(&mem, sizeof(FOREIGN_SERVER)); DBUG_ENTER("get_server_from_table_to_cache"); @@ -312,7 +313,7 @@ get_server_from_table_to_cache(TABLE *table) server->port= server->sport ? atoi(server->sport) : 0; ptr= get_field(&mem, table->field[6]); - server->socket= ptr && strlen(ptr) ? ptr : NULL; + server->socket= ptr && strlen(ptr) ? ptr : blank; ptr= get_field(&mem, table->field[7]); server->scheme= ptr ? ptr : blank; ptr= get_field(&mem, table->field[8]); diff --git a/sql/sql_show.cc b/sql/sql_show.cc index b2837ce246d..9a7d7c59af3 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -3779,8 +3779,11 @@ static int get_schema_column_record(THD *thd, TABLE_LIST *tables, end= tmp; if (field->unireg_check == Field::NEXT_NUMBER) - end=strmov(tmp,"auto_increment"); - table->field[16]->store(tmp, (uint) (end-tmp), cs); + table->field[16]->store(STRING_WITH_LEN("auto_increment"), cs); + if (show_table->timestamp_field == field && + field->unireg_check != Field::TIMESTAMP_DN_FIELD) + table->field[16]->store(STRING_WITH_LEN("on update CURRENT_TIMESTAMP"), + cs); table->field[18]->store(field->comment.str, field->comment.length, cs); if (schema_table_store_record(thd, table)) @@ -5983,7 +5986,7 @@ ST_FIELD_INFO columns_fields_info[]= {"COLLATION_NAME", 64, MYSQL_TYPE_STRING, 0, 1, "Collation", OPEN_FRM_ONLY}, {"COLUMN_TYPE", 65535, MYSQL_TYPE_STRING, 0, 0, "Type", OPEN_FRM_ONLY}, {"COLUMN_KEY", 3, MYSQL_TYPE_STRING, 0, 0, "Key", OPEN_FRM_ONLY}, - {"EXTRA", 20, MYSQL_TYPE_STRING, 0, 0, "Extra", OPEN_FRM_ONLY}, + {"EXTRA", 27, MYSQL_TYPE_STRING, 0, 0, "Extra", OPEN_FRM_ONLY}, {"PRIVILEGES", 80, MYSQL_TYPE_STRING, 0, 0, "Privileges", OPEN_FRM_ONLY}, {"COLUMN_COMMENT", 255, MYSQL_TYPE_STRING, 0, 0, "Comment", OPEN_FRM_ONLY}, {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE} @@ -6864,6 +6867,9 @@ bool show_create_trigger(THD *thd, const sp_name *trg_name) { TABLE_LIST *lst= get_trigger_table(thd, trg_name); + if (!lst) + return TRUE; + /* Open the table by name in order to load Table_triggers_list object. diff --git a/sql/sql_string.cc b/sql/sql_string.cc index a8eb7360339..f97180474d1 100644 --- a/sql/sql_string.cc +++ b/sql/sql_string.cc @@ -297,8 +297,8 @@ bool String::copy_aligned(const char *str,uint32 arg_length, uint32 offset, return TRUE; /* - Note, this is only safe for little-endian UCS-2. - If we add big-endian UCS-2 sometimes, this code + Note, this is only safe for big-endian UCS-2. + If we add little-endian UCS-2 sometimes, this code will be more complicated. But it's OK for now. */ bzero((char*) Ptr, offset); diff --git a/sql/sql_udf.cc b/sql/sql_udf.cc index 1076772d598..30e8829d764 100644 --- a/sql/sql_udf.cc +++ b/sql/sql_udf.cc @@ -135,6 +135,7 @@ void udf_init() initialized = 1; new_thd->thread_stack= (char*) &new_thd; new_thd->store_globals(); + lex_start(new_thd); new_thd->set_db(db, sizeof(db)-1); bzero((uchar*) &tables,sizeof(tables)); @@ -393,7 +394,12 @@ int mysql_create_function(THD *thd,udf_func *udf) if (!initialized) { - my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0)); + if (opt_noacl) + my_error(ER_CANT_INITIALIZE_UDF, MYF(0), + udf->name.str, + "UDFs are unavailable with the --skip-grant-tables option"); + else + my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0)); DBUG_RETURN(1); } @@ -516,7 +522,10 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name) if (!initialized) { - my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0)); + if (opt_noacl) + my_error(ER_FUNCTION_NOT_DEFINED, MYF(0), udf_name->str); + else + my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0)); DBUG_RETURN(1); } diff --git a/sql/sql_view.cc b/sql/sql_view.cc index f7223cafb5e..362bab2d700 100644 --- a/sql/sql_view.cc +++ b/sql/sql_view.cc @@ -1465,6 +1465,8 @@ bool mysql_drop_view(THD *thd, TABLE_LIST *views, enum_drop_mode drop_mode) char *wrong_object_db= NULL, *wrong_object_name= NULL; bool error= FALSE; enum legacy_db_type not_used; + bool some_views_deleted= FALSE; + bool something_wrong= FALSE; DBUG_ENTER("mysql_drop_view"); VOID(pthread_mutex_lock(&LOCK_open)); @@ -1506,6 +1508,8 @@ bool mysql_drop_view(THD *thd, TABLE_LIST *views, enum_drop_mode drop_mode) if (my_delete(path, MYF(MY_WME))) error= TRUE; + some_views_deleted= TRUE; + /* For a view, there is only one table_share object which should never be used outside of LOCK_open @@ -1523,29 +1527,32 @@ bool mysql_drop_view(THD *thd, TABLE_LIST *views, enum_drop_mode drop_mode) sp_cache_invalidate(); } - if (error) - { - VOID(pthread_mutex_unlock(&LOCK_open)); - DBUG_RETURN(TRUE); - } if (wrong_object_name) { - VOID(pthread_mutex_unlock(&LOCK_open)); my_error(ER_WRONG_OBJECT, MYF(0), wrong_object_db, wrong_object_name, "VIEW"); - DBUG_RETURN(TRUE); } if (non_existant_views.length()) { - VOID(pthread_mutex_unlock(&LOCK_open)); my_error(ER_BAD_TABLE_ERROR, MYF(0), non_existant_views.c_ptr()); - DBUG_RETURN(TRUE); } - write_bin_log(thd, TRUE, thd->query, thd->query_length); + something_wrong= error || wrong_object_name || non_existant_views.length(); + if (some_views_deleted || !something_wrong) + { + /* if something goes wrong, bin-log with possible error code, + otherwise bin-log with error code cleared. + */ + write_bin_log(thd, !something_wrong, thd->query, thd->query_length); + } - send_ok(thd); VOID(pthread_mutex_unlock(&LOCK_open)); + + if (something_wrong) + { + DBUG_RETURN(TRUE); + } + send_ok(thd); DBUG_RETURN(FALSE); } diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 5d4ac9c75b3..04323568519 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -6323,6 +6323,12 @@ select_item: MYSQL_YYABORT; if ($4.str) { + if (Lex->sql_command == SQLCOM_CREATE_VIEW && + check_column_name($4.str)) + { + my_error(ER_WRONG_COLUMN_NAME, MYF(0), $4.str); + MYSQL_YYABORT; + } $2->is_autogenerated_name= FALSE; $2->set_name($4.str, $4.length, system_charset_info); } @@ -6492,7 +6498,7 @@ bool_pri: { $$= (*$2)(0)->create($1,$3); } | bool_pri comp_op all_or_any '(' subselect ')' %prec EQ { $$= all_any_subquery_creator($1, $2, $3, $5); } - | predicate ; + | predicate ; predicate: diff --git a/sql/table.cc b/sql/table.cc index a113975c5c5..c3ddb809b9e 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1610,6 +1610,9 @@ int open_table_from_share(THD *thd, TABLE_SHARE *share, const char *alias, DBUG_PRINT("enter",("name: '%s.%s' form: 0x%lx", share->db.str, share->table_name.str, (long) outparam)); + /* Parsing of partitioning information from .frm needs thd->lex set up. */ + DBUG_ASSERT(thd->lex->is_lex_started); + error= 1; bzero((char*) outparam, sizeof(*outparam)); outparam->in_use= thd; @@ -1784,7 +1787,8 @@ int open_table_from_share(THD *thd, TABLE_SHARE *share, const char *alias, outparam, is_create_table, share->default_part_db_type, &work_part_info_used); - outparam->part_info->is_auto_partitioned= share->auto_partitioned; + if (!tmp) + outparam->part_info->is_auto_partitioned= share->auto_partitioned; DBUG_PRINT("info", ("autopartitioned: %u", share->auto_partitioned)); /* we should perform the fix_partition_func in either local or caller's arena depending on work_part_info_used value diff --git a/sql/tztime.cc b/sql/tztime.cc index 9eb38e97827..920f8e87d13 100644 --- a/sql/tztime.cc +++ b/sql/tztime.cc @@ -1575,6 +1575,7 @@ my_tz_init(THD *org_thd, const char *default_tzname, my_bool bootstrap) DBUG_RETURN(1); thd->thread_stack= (char*) &thd; thd->store_globals(); + lex_start(thd); /* Init all memory structures that require explicit destruction */ if (hash_init(&tz_names, &my_charset_latin1, 20, diff --git a/storage/archive/azio.c b/storage/archive/azio.c index c04749444cb..2cf0fe114d3 100644 --- a/storage/archive/azio.c +++ b/storage/archive/azio.c @@ -681,8 +681,8 @@ my_off_t azseek (s, offset, whence) /* There was a zmemzero here if inbuf was null -Brian */ while (offset > 0) { - uInt size = AZ_BUFSIZE_WRITE; - if (offset < AZ_BUFSIZE_WRITE) size = (uInt)offset; + uInt size = AZ_BUFSIZE_READ; + if (offset < AZ_BUFSIZE_READ) size = (uInt)offset; size = azwrite(s, s->inbuf, size); if (size == 0) return -1L; @@ -725,11 +725,11 @@ my_off_t azseek (s, offset, whence) } while (offset > 0) { int error; - unsigned int size = AZ_BUFSIZE_READ; - if (offset < AZ_BUFSIZE_READ) size = (int)offset; + unsigned int size = AZ_BUFSIZE_WRITE; + if (offset < AZ_BUFSIZE_WRITE) size = (int)offset; size = azread(s, s->outbuf, size, &error); - if (error <= 0) return -1L; + if (error < 0) return -1L; offset -= size; } return s->out; diff --git a/storage/archive/ha_archive.cc b/storage/archive/ha_archive.cc index 6696eac2fbb..84298e785d1 100644 --- a/storage/archive/ha_archive.cc +++ b/storage/archive/ha_archive.cc @@ -1241,8 +1241,8 @@ int ha_archive::rnd_pos(uchar * buf, uchar *pos) DBUG_ENTER("ha_archive::rnd_pos"); ha_statistic_increment(&SSV::ha_read_rnd_next_count); current_position= (my_off_t)my_get_ptr(pos, ref_length); - (void)azseek(&archive, current_position, SEEK_SET); - + if (azseek(&archive, current_position, SEEK_SET) == (my_off_t)(-1L)) + DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE); DBUG_RETURN(get_row(&archive, buf)); } diff --git a/storage/example/ha_example.cc b/storage/example/ha_example.cc index b7186dda676..6d9f4841e06 100644 --- a/storage/example/ha_example.cc +++ b/storage/example/ha_example.cc @@ -848,6 +848,34 @@ int ha_example::create(const char *name, TABLE *table_arg, struct st_mysql_storage_engine example_storage_engine= { MYSQL_HANDLERTON_INTERFACE_VERSION }; +static ulong srv_enum_var= 0; + +const char *enum_var_names[]= +{ + "e1", "e2", NullS +}; + +TYPELIB enum_var_typelib= +{ + array_elements(enum_var_names) - 1, "enum_var_typelib", + enum_var_names, NULL +}; + +static MYSQL_SYSVAR_ENUM( + enum_var, // name + srv_enum_var, // varname + PLUGIN_VAR_RQCMDARG, // opt + "Sample ENUM system variable.", // comment + NULL, // check + NULL, // update + 0, // def + &enum_var_typelib); // typelib + +static struct st_mysql_sys_var* example_system_variables[]= { + MYSQL_SYSVAR(enum_var), + NULL +}; + mysql_declare_plugin(example) { MYSQL_STORAGE_ENGINE_PLUGIN, @@ -860,7 +888,7 @@ mysql_declare_plugin(example) example_done_func, /* Plugin Deinit */ 0x0001 /* 0.1 */, NULL, /* status variables */ - NULL, /* system variables */ + example_system_variables, /* system variables */ NULL /* config options */ } mysql_declare_plugin_end; diff --git a/storage/innobase/buf/buf0lru.c b/storage/innobase/buf/buf0lru.c index 7b49a7641af..f3913ed49b7 100644 --- a/storage/innobase/buf/buf0lru.c +++ b/storage/innobase/buf/buf0lru.c @@ -881,7 +881,7 @@ buf_LRU_block_free_non_file_page( UT_LIST_ADD_FIRST(free, buf_pool->free, block); block->in_free_list = TRUE; - UNIV_MEM_FREE(block->frame, UNIV_PAGE_SIZE); + UNIV_MEM_ASSERT_AND_FREE(block->frame, UNIV_PAGE_SIZE); if (srv_use_awe && block->frame) { /* Add to the list of mapped pages */ diff --git a/storage/innobase/dict/dict0dict.c b/storage/innobase/dict/dict0dict.c index 595dfb06ee5..8aba5ac1c85 100644 --- a/storage/innobase/dict/dict0dict.c +++ b/storage/innobase/dict/dict0dict.c @@ -84,16 +84,6 @@ innobase_convert_from_id( ulint len); /* in: length of 'to', in bytes; should be at least 3 * strlen(to) + 1 */ /********************************************************************** -Removes the filename encoding of a table or database name. - -NOTE: the prototype of this function is copied from ha_innodb.cc! If you change -this function, you MUST change also the prototype here! */ -extern -void -innobase_convert_from_filename( -/*===========================*/ - char* s); /* in: identifier; out: decoded identifier */ -/********************************************************************** Compares NUL-terminated UTF-8 strings case insensitively. NOTE: the prototype of this function is copied from ha_innodb.cc! If you change @@ -441,6 +431,8 @@ dict_table_autoinc_initialize( dict_table_t* table, /* in: table */ ib_longlong value) /* in: next value to assign to a row */ { + ut_ad(mutex_own(&table->autoinc_mutex)); + table->autoinc_inited = TRUE; table->autoinc = value; } @@ -457,6 +449,8 @@ dict_table_autoinc_read( { ib_longlong value; + ut_ad(mutex_own(&table->autoinc_mutex)); + if (!table->autoinc_inited) { value = 0; diff --git a/storage/innobase/dict/dict0load.c b/storage/innobase/dict/dict0load.c index 1ff1fd54cec..f594e64f517 100644 --- a/storage/innobase/dict/dict0load.c +++ b/storage/innobase/dict/dict0load.c @@ -551,11 +551,13 @@ dict_load_fields( Loads definitions for table indexes. Adds them to the data dictionary cache. */ static -ibool +ulint dict_load_indexes( /*==============*/ - /* out: TRUE if ok, FALSE if corruption - of dictionary table */ + /* out: DB_SUCCESS if ok, DB_CORRUPTION + if corruption of dictionary table or + DB_UNSUPPORTED if table has unknown index + type */ dict_table_t* table, /* in: table */ mem_heap_t* heap) /* in: memory heap for temporary storage */ { @@ -578,6 +580,7 @@ dict_load_indexes( ibool is_sys_table; dulint id; mtr_t mtr; + ulint error = DB_SUCCESS; ut_ad(mutex_own(&(dict_sys->mutex))); @@ -624,10 +627,8 @@ dict_load_indexes( dict_load_report_deleted_index(table->name, ULINT_UNDEFINED); - btr_pcur_close(&pcur); - mtr_commit(&mtr); - - return(FALSE); + error = DB_CORRUPTION; + goto func_exit; } field = rec_get_nth_field_old(rec, 1, &len); @@ -653,7 +654,18 @@ dict_load_indexes( field = rec_get_nth_field_old(rec, 8, &len); page_no = mach_read_from_4(field); - if (page_no == FIL_NULL) { + /* We check for unsupported types first, so that the + subsequent checks are relevant for the supported types. */ + if (type & ~(DICT_CLUSTERED | DICT_UNIQUE)) { + + fprintf(stderr, + "InnoDB: Error: unknown type %lu" + " of index %s of table %s\n", + (ulong) type, name_buf, table->name); + + error = DB_UNSUPPORTED; + goto func_exit; + } else if (page_no == FIL_NULL) { fprintf(stderr, "InnoDB: Error: trying to load index %s" @@ -661,14 +673,10 @@ dict_load_indexes( "InnoDB: but the index tree has been freed!\n", name_buf, table->name); - btr_pcur_close(&pcur); - mtr_commit(&mtr); - - return(FALSE); - } - - if ((type & DICT_CLUSTERED) == 0 - && NULL == dict_table_get_first_index(table)) { + error = DB_CORRUPTION; + goto func_exit; + } else if ((type & DICT_CLUSTERED) == 0 + && NULL == dict_table_get_first_index(table)) { fprintf(stderr, "InnoDB: Error: trying to load index %s" @@ -677,18 +685,14 @@ dict_load_indexes( " is not clustered!\n", name_buf, table->name); - btr_pcur_close(&pcur); - mtr_commit(&mtr); - - return(FALSE); - } - - if (is_sys_table - && ((type & DICT_CLUSTERED) - || ((table == dict_sys->sys_tables) - && (name_len == (sizeof "ID_IND") - 1) - && (0 == ut_memcmp(name_buf, "ID_IND", - name_len))))) { + error = DB_CORRUPTION; + goto func_exit; + } else if (is_sys_table + && ((type & DICT_CLUSTERED) + || ((table == dict_sys->sys_tables) + && (name_len == (sizeof "ID_IND") - 1) + && (0 == ut_memcmp(name_buf, + "ID_IND", name_len))))) { /* The index was created in memory already at booting of the database server */ @@ -704,10 +708,11 @@ dict_load_indexes( btr_pcur_move_to_next_user_rec(&pcur, &mtr); } +func_exit: btr_pcur_close(&pcur); mtr_commit(&mtr); - return(TRUE); + return(error); } /************************************************************************ @@ -857,11 +862,20 @@ err_exit: mem_heap_empty(heap); - dict_load_indexes(table, heap); - - err = dict_load_foreigns(table->name, TRUE); + err = dict_load_indexes(table, heap); + + /* If the force recovery flag is set, we open the table irrespective + of the error condition, since the user may want to dump data from the + clustered index. However we load the foreign key information only if + all indexes were loaded. */ + if (err != DB_SUCCESS && !srv_force_recovery) { + dict_mem_table_free(table); + table = NULL; + } else if (err == DB_SUCCESS) { + err = dict_load_foreigns(table->name, TRUE); + } #if 0 - if (err != DB_SUCCESS) { + if (err != DB_SUCCESS && table != NULL) { mutex_enter(&dict_foreign_err_mutex); diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 783553f5d87..205cfc91e52 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -129,6 +129,7 @@ static my_bool innobase_locks_unsafe_for_binlog = FALSE; static my_bool innobase_rollback_on_timeout = FALSE; static my_bool innobase_create_status_file = FALSE; static my_bool innobase_stats_on_metadata = TRUE; +static my_bool innobase_use_adaptive_hash_indexes = TRUE; static char* internal_innobase_data_file_path = NULL; @@ -678,6 +679,9 @@ convert_error_code_to_mysql( return(HA_ERR_RECORD_FILE_FULL); #endif + } else if (error == DB_UNSUPPORTED) { + + return(HA_ERR_UNSUPPORTED); } else { return(-1); // Unknown error } @@ -801,23 +805,6 @@ innobase_convert_from_id( } /********************************************************************** -Removes the filename encoding of a table or database name. - -NOTE that the exact prototype of this function has to be in -/innobase/dict/dict0dict.c! */ -extern "C" -void -innobase_convert_from_filename( -/*===========================*/ - char* s) /* in: identifier; out: decoded identifier */ -{ - uint errors; - - strconvert(&my_charset_filename, s, - system_charset_info, s, strlen(s), &errors); -} - -/********************************************************************** Compares NUL-terminated UTF-8 strings case insensitively. NOTE that the exact prototype of this function has to be in @@ -1143,7 +1130,6 @@ innobase_query_caching_of_table_permitted( } if (trx->has_search_latch) { - ut_print_timestamp(stderr); sql_print_error("The calling thread is holding the adaptive " "search, latch though calling " "innobase_query_caching_of_table_permitted."); @@ -1246,8 +1232,7 @@ innobase_invalidate_query_cache( } /********************************************************************* -Display an SQL identifier. -This definition must match the one in innobase/ut/ut0ut.c! */ +Display an SQL identifier. */ extern "C" void innobase_print_identifier( @@ -1635,6 +1620,9 @@ innobase_init( srv_stats_on_metadata = (ibool) innobase_stats_on_metadata; + srv_use_adaptive_hash_indexes = + (ibool) innobase_use_adaptive_hash_indexes; + srv_print_verbose_log = mysqld_embedded ? 0 : 1; /* Store the default charset-collation number of this MySQL @@ -2319,14 +2307,18 @@ ha_innobase::open( ib_table = dict_table_get(norm_name, TRUE); if (NULL == ib_table) { - ut_print_timestamp(stderr); - sql_print_error("Cannot find table %s from the internal data " - "dictionary\nof InnoDB though the .frm file " - "for the table exists. Maybe you\nhave " - "deleted and recreated InnoDB data files but " - "have forgotten\nto delete the corresponding " - ".frm files of InnoDB tables, or you\n" - "have moved .frm files to another database?\n" + sql_print_error("Cannot find or open table %s from\n" + "the internal data dictionary of InnoDB " + "though the .frm file for the\n" + "table exists. Maybe you have deleted and " + "recreated InnoDB data\n" + "files but have forgotten to delete the " + "corresponding .frm files\n" + "of InnoDB tables, or you have moved .frm " + "files to another database?\n" + "or, the table contains indexes that this " + "version of the engine\n" + "doesn't support.\n" "See http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html\n" "how you can resolve the problem.\n", norm_name); @@ -2338,7 +2330,6 @@ ha_innobase::open( } if (ib_table->ibd_file_missing && !thd_tablespace_op(thd)) { - ut_print_timestamp(stderr); sql_print_error("MySQL is trying to open a table handle but " "the .ibd file for\ntable %s does not exist.\n" "Have you deleted the .ibd file from the " @@ -3412,7 +3403,7 @@ no_commit: /* ut_print_timestamp(stderr); fprintf(stderr, - " InnoDB error: ALTER TABLE is holding lock" + " InnoDB: ALTER TABLE is holding lock" " on %lu tables!\n", prebuilt->trx->mysql_n_tables_locked); */ @@ -3476,6 +3467,7 @@ no_commit: /* Handle duplicate key errors */ if (auto_inc_used) { + ulint err; ulonglong auto_inc; /* Note the number of rows processed for this statement, used @@ -3529,7 +3521,11 @@ set_max_autoinc: ut_a(prebuilt->table->autoinc_increment > 0); auto_inc += prebuilt->table->autoinc_increment; - innobase_set_max_autoinc(auto_inc); + err = innobase_set_max_autoinc(auto_inc); + + if (err != DB_SUCCESS) { + error = (int) err; + } } break; } @@ -3765,7 +3761,7 @@ ha_innobase::update_row( if (auto_inc != 0) { auto_inc += prebuilt->table->autoinc_increment; - innobase_set_max_autoinc(auto_inc); + error = innobase_set_max_autoinc(auto_inc); } } @@ -3952,33 +3948,51 @@ convert_search_mode_to_innobase( enum ha_rkey_function find_flag) { switch (find_flag) { - case HA_READ_KEY_EXACT: return(PAGE_CUR_GE); - /* the above does not require the index to be UNIQUE */ - case HA_READ_KEY_OR_NEXT: return(PAGE_CUR_GE); - case HA_READ_KEY_OR_PREV: return(PAGE_CUR_LE); - case HA_READ_AFTER_KEY: return(PAGE_CUR_G); - case HA_READ_BEFORE_KEY: return(PAGE_CUR_L); - case HA_READ_PREFIX: return(PAGE_CUR_GE); - case HA_READ_PREFIX_LAST: return(PAGE_CUR_LE); - case HA_READ_PREFIX_LAST_OR_PREV:return(PAGE_CUR_LE); - /* In MySQL-4.0 HA_READ_PREFIX and HA_READ_PREFIX_LAST always - pass a complete-field prefix of a key value as the search - tuple. I.e., it is not allowed that the last field would - just contain n first bytes of the full field value. - MySQL uses a 'padding' trick to convert LIKE 'abc%' - type queries so that it can use as a search tuple - a complete-field-prefix of a key value. Thus, the InnoDB - search mode PAGE_CUR_LE_OR_EXTENDS is never used. - TODO: when/if MySQL starts to use also partial-field - prefixes, we have to deal with stripping of spaces - and comparison of non-latin1 char type fields in - innobase_mysql_cmp() to get PAGE_CUR_LE_OR_EXTENDS to - work correctly. */ - - default: assert(0); - } - - return(0); + case HA_READ_KEY_EXACT: + /* this does not require the index to be UNIQUE */ + return(PAGE_CUR_GE); + case HA_READ_KEY_OR_NEXT: + return(PAGE_CUR_GE); + case HA_READ_KEY_OR_PREV: + return(PAGE_CUR_LE); + case HA_READ_AFTER_KEY: + return(PAGE_CUR_G); + case HA_READ_BEFORE_KEY: + return(PAGE_CUR_L); + case HA_READ_PREFIX: + return(PAGE_CUR_GE); + case HA_READ_PREFIX_LAST: + return(PAGE_CUR_LE); + case HA_READ_PREFIX_LAST_OR_PREV: + return(PAGE_CUR_LE); + /* In MySQL-4.0 HA_READ_PREFIX and HA_READ_PREFIX_LAST always + pass a complete-field prefix of a key value as the search + tuple. I.e., it is not allowed that the last field would + just contain n first bytes of the full field value. + MySQL uses a 'padding' trick to convert LIKE 'abc%' + type queries so that it can use as a search tuple + a complete-field-prefix of a key value. Thus, the InnoDB + search mode PAGE_CUR_LE_OR_EXTENDS is never used. + TODO: when/if MySQL starts to use also partial-field + prefixes, we have to deal with stripping of spaces + and comparison of non-latin1 char type fields in + innobase_mysql_cmp() to get PAGE_CUR_LE_OR_EXTENDS to + work correctly. */ + case HA_READ_MBR_CONTAIN: + case HA_READ_MBR_INTERSECT: + case HA_READ_MBR_WITHIN: + case HA_READ_MBR_DISJOINT: + case HA_READ_MBR_EQUAL: + my_error(ER_TABLE_CANT_HANDLE_SPKEYS, MYF(0)); + return(PAGE_CUR_UNSUPP); + /* do not use "default:" in order to produce a gcc warning: + enumeration value '...' not handled in switch + (if -Wswitch or -Wall is used) */ + } + + my_error(ER_CHECK_NOT_IMPLEMENTED, MYF(0), "this functionality"); + + return(PAGE_CUR_UNSUPP); } /* @@ -4106,11 +4120,18 @@ ha_innobase::index_read( last_match_mode = (uint) match_mode; - innodb_srv_conc_enter_innodb(prebuilt->trx); + if (mode != PAGE_CUR_UNSUPP) { - ret = row_search_for_mysql((byte*) buf, mode, prebuilt, match_mode, 0); + innodb_srv_conc_enter_innodb(prebuilt->trx); - innodb_srv_conc_exit_innodb(prebuilt->trx); + ret = row_search_for_mysql((byte*) buf, mode, prebuilt, + match_mode, 0); + + innodb_srv_conc_exit_innodb(prebuilt->trx); + } else { + + ret = DB_UNSUPPORTED; + } if (ret == DB_SUCCESS) { error = 0; @@ -5460,8 +5481,16 @@ ha_innobase::records_in_range( mode2 = convert_search_mode_to_innobase(max_key ? max_key->flag : HA_READ_KEY_EXACT); - n_rows = btr_estimate_n_rows_in_range(index, range_start, - mode1, range_end, mode2); + if (mode1 != PAGE_CUR_UNSUPP && mode2 != PAGE_CUR_UNSUPP) { + + n_rows = btr_estimate_n_rows_in_range(index, range_start, + mode1, range_end, + mode2); + } else { + + n_rows = 0; + } + dtuple_free_for_mysql(heap1); dtuple_free_for_mysql(heap2); @@ -5710,7 +5739,6 @@ ha_innobase::info( for (i = 0; i < table->s->keys; i++) { if (index == NULL) { - ut_print_timestamp(stderr); sql_print_error("Table %s contains fewer " "indexes inside InnoDB than " "are defined in the MySQL " @@ -5726,7 +5754,6 @@ ha_innobase::info( for (j = 0; j < table->key_info[i].key_parts; j++) { if (j + 1 > index->n_uniq) { - ut_print_timestamp(stderr); sql_print_error( "Index %s of %s has %lu columns unique inside InnoDB, but MySQL is asking " "statistics for %lu columns. Have you mixed up .frm files from different " @@ -5791,7 +5818,6 @@ ha_innobase::info( ret = innobase_read_and_init_auto_inc(&auto_inc); if (ret != 0) { - ut_print_timestamp(stderr); sql_print_error("Cannot get table %s auto-inc" "counter value in ::info\n", ib_table->name); @@ -6304,6 +6330,9 @@ ha_innobase::start_stmt( innobase_release_stat_resources(trx); + /* Reset the AUTOINC statement level counter for multi-row INSERTs. */ + trx->n_autoinc_rows = 0; + prebuilt->sql_stat_start = TRUE; prebuilt->hint_need_to_fetch_extra_cols = 0; reset_template(prebuilt); @@ -6446,9 +6475,6 @@ ha_innobase::external_lock( innobase_register_stmt(ht, thd); } - trx->n_mysql_tables_in_use++; - prebuilt->mysql_has_locked = TRUE; - if (trx->isolation_level == TRX_ISO_SERIALIZABLE && prebuilt->select_lock_type == LOCK_NONE && thd_test_options(thd, @@ -6497,6 +6523,9 @@ ha_innobase::external_lock( trx->mysql_n_tables_locked++; } + trx->n_mysql_tables_in_use++; + prebuilt->mysql_has_locked = TRUE; + DBUG_RETURN(0); } @@ -6562,14 +6591,17 @@ ha_innobase::transactional_table_lock( if (prebuilt->table->ibd_file_missing && !thd_tablespace_op(thd)) { ut_print_timestamp(stderr); - fprintf(stderr, " InnoDB error:\n" -"MySQL is trying to use a table handle but the .ibd file for\n" -"table %s does not exist.\n" -"Have you deleted the .ibd file from the database directory under\n" -"the MySQL datadir?" -"See http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html\n" -"how you can resolve the problem.\n", - prebuilt->table->name); + fprintf(stderr, + " InnoDB: MySQL is trying to use a table handle" + " but the .ibd file for\n" + "InnoDB: table %s does not exist.\n" + "InnoDB: Have you deleted the .ibd file" + " from the database directory under\n" + "InnoDB: the MySQL datadir?" + "InnoDB: See" + " http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html\n" + "InnoDB: how you can resolve the problem.\n", + prebuilt->table->name); DBUG_RETURN(HA_ERR_CRASHED); } @@ -7120,8 +7152,8 @@ the value of the auto-inc counter. */ int ha_innobase::innobase_read_and_init_auto_inc( /*=========================================*/ - /* out: 0 or error code: - deadlock or lock wait timeout */ + /* out: 0 or generic MySQL + error code */ longlong* value) /* out: the autoinc value */ { longlong auto_inc; @@ -7178,9 +7210,10 @@ ha_innobase::innobase_read_and_init_auto_inc( ++auto_inc; dict_table_autoinc_initialize(innodb_table, auto_inc); } else { - fprintf(stderr, " InnoDB error: Couldn't read the " - "max AUTOINC value from index (%s).\n", - index->name); + ut_print_timestamp(stderr); + fprintf(stderr, " InnoDB: Error: (%lu) Couldn't read " + "the max AUTOINC value from the index (%s).\n", + error, index->name); mysql_error = 1; } @@ -7217,6 +7250,11 @@ ha_innobase::innobase_get_auto_increment( { ulong error; + *value = 0; + + /* Note: If the table is not initialized when we attempt the + read below. We initialize the table's auto-inc counter and + always do a reread of the AUTOINC value. */ do { error = innobase_autoinc_lock(); @@ -7256,7 +7294,15 @@ ha_innobase::innobase_get_auto_increment( } else { *value = (ulonglong) autoinc; } + /* A deadlock error during normal processing is OK + and can be ignored. */ + } else if (error != DB_DEADLOCK) { + + sql_print_error("InnoDB: Error: %lu in " + "::innobase_get_auto_increment()", + error); } + } while (*value == 0 && error == DB_SUCCESS); return(error); @@ -7272,7 +7318,7 @@ we have a table-level lock). offset, increment, nb_desired_values are ignored. void ha_innobase::get_auto_increment( -/*=================================*/ +/*============================*/ ulonglong offset, /* in: */ ulonglong increment, /* in: table autoinc increment */ ulonglong nb_desired_values, /* in: number of values reqd */ @@ -7289,13 +7335,6 @@ ha_innobase::get_auto_increment( error = innobase_get_auto_increment(&autoinc); if (error != DB_SUCCESS) { - /* This should never happen in the code > ver 5.0.6, - since we call this function only after the counter - has been initialized. */ - - ut_print_timestamp(stderr); - sql_print_error("Error %lu in ::get_auto_increment()", error); - *first_value = (~(ulonglong) 0); return; } @@ -7310,6 +7349,11 @@ ha_innobase::get_auto_increment( trx = prebuilt->trx; + /* Note: We can't rely on *first_value since some MySQL engines, + in particular the partition engine, don't initialize it to 0 when + invoking this method. So we are not sure if it's guaranteed to + be 0 or not. */ + /* Called for the first time ? */ if (trx->n_autoinc_rows == 0) { @@ -7318,16 +7362,16 @@ ha_innobase::get_auto_increment( /* It's possible for nb_desired_values to be 0: e.g., INSERT INTO T1(C) SELECT C FROM T2; */ if (nb_desired_values == 0) { - + trx->n_autoinc_rows = 1; } - + set_if_bigger(*first_value, autoinc); /* Not in the middle of a mult-row INSERT. */ } else if (prebuilt->last_value == 0) { set_if_bigger(*first_value, autoinc); } - + *nb_reserved_values = trx->n_autoinc_rows; /* With old style AUTOINC locking we only update the table's @@ -7359,7 +7403,9 @@ ha_innobase::get_auto_increment( /* See comment in handler.h */ int -ha_innobase::reset_auto_increment(ulonglong value) +ha_innobase::reset_auto_increment( +/*==============================*/ + ulonglong value) /* in: new value for table autoinc */ { DBUG_ENTER("ha_innobase::reset_auto_increment"); @@ -7923,6 +7969,11 @@ static MYSQL_SYSVAR_BOOL(stats_on_metadata, innobase_stats_on_metadata, "Enable statistics gathering for metadata commands such as SHOW TABLE STATUS (on by default)", NULL, NULL, TRUE); +static MYSQL_SYSVAR_BOOL(use_adaptive_hash_indexes, innobase_use_adaptive_hash_indexes, + PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_READONLY, + "Enable the InnoDB adaptive hash indexes (enabled by default)", + NULL, NULL, TRUE); + static MYSQL_SYSVAR_LONG(additional_mem_pool_size, innobase_additional_mem_pool_size, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, "Size of a memory pool InnoDB uses to store data dictionary information and other internal data structures.", @@ -8051,6 +8102,7 @@ static struct st_mysql_sys_var* innobase_system_variables[]= { MYSQL_SYSVAR(open_files), MYSQL_SYSVAR(rollback_on_timeout), MYSQL_SYSVAR(stats_on_metadata), + MYSQL_SYSVAR(use_adaptive_hash_indexes), MYSQL_SYSVAR(status_file), MYSQL_SYSVAR(support_xa), MYSQL_SYSVAR(sync_spin_loops), diff --git a/storage/innobase/handler/ha_innodb.h b/storage/innobase/handler/ha_innodb.h index fe5ebd57990..773884b6584 100644 --- a/storage/innobase/handler/ha_innodb.h +++ b/storage/innobase/handler/ha_innodb.h @@ -250,17 +250,3 @@ int thd_binlog_format(const MYSQL_THD thd); */ void thd_mark_transaction_to_rollback(MYSQL_THD thd, bool all); } - -/* - don't delete it - it may be re-enabled later - as an optimization for the most common case InnoDB+binlog -*/ -#if 0 -int innobase_report_binlog_offset_and_commit( - THD* thd, - void* trx_handle, - char* log_file_name, - my_off_t end_offset); -int innobase_commit_complete(void* trx_handle); -void innobase_store_binlog_offset_and_flush_log(char *binlog_name,longlong offset); -#endif diff --git a/storage/innobase/ibuf/ibuf0ibuf.c b/storage/innobase/ibuf/ibuf0ibuf.c index 44972356304..126fd9fdd33 100644 --- a/storage/innobase/ibuf/ibuf0ibuf.c +++ b/storage/innobase/ibuf/ibuf0ibuf.c @@ -2900,7 +2900,7 @@ dump: ut_print_timestamp(stderr); fprintf(stderr, - "InnoDB: Error: Insert buffer insert" + " InnoDB: Error: Insert buffer insert" " fails; page free %lu," " dtuple size %lu\n", (ulong) page_get_max_insert_size( @@ -2925,7 +2925,7 @@ dump: buf_frame_get_page_no(page), IBUF_BITMAP_FREE, mtr); - fprintf(stderr, "Bitmap bits %lu\n", + fprintf(stderr, "InnoDB: Bitmap bits %lu\n", (ulong) old_bits); fputs("InnoDB: Submit a detailed bug report" diff --git a/storage/innobase/include/db0err.h b/storage/innobase/include/db0err.h index 0aa1b87e470..ed7ce151718 100644 --- a/storage/innobase/include/db0err.h +++ b/storage/innobase/include/db0err.h @@ -61,12 +61,14 @@ Created 5/24/1996 Heikki Tuuri activated by the operation would lead to a duplicate key in some table */ - #define DB_TOO_MANY_CONCURRENT_TRXS 47 /* when InnoDB runs out of the preconfigured undo slots, this can only happen when there are too many concurrent transactions */ - +#define DB_UNSUPPORTED 48 /* when InnoDB sees any artefact or + a feature that it can't recoginize or + work with e.g., FT indexes created by + a later version of the engine. */ /* The following are partial failure codes */ #define DB_FAIL 1000 #define DB_OVERFLOW 1001 diff --git a/storage/innobase/include/ha_prototypes.h b/storage/innobase/include/ha_prototypes.h index 7fb50988941..ef0722321af 100644 --- a/storage/innobase/include/ha_prototypes.h +++ b/storage/innobase/include/ha_prototypes.h @@ -1,6 +1,8 @@ #ifndef HA_INNODB_PROTOTYPES_H #define HA_INNODB_PROTOTYPES_H +#ifndef UNIV_HOTBACKUP + #include "univ.i" /* ulint, uint */ #include "m_ctype.h" /* CHARSET_INFO */ @@ -22,6 +24,19 @@ innobase_convert_string( CHARSET_INFO* from_cs, uint* errors); +/********************************************************************* +Display an SQL identifier. */ + +void +innobase_print_identifier( +/*======================*/ + FILE* f, /* in: output stream */ + trx_t* trx, /* in: transaction */ + ibool table_id,/* in: TRUE=print a table name, + FALSE=print other identifier */ + const char* name, /* in: name to print */ + ulint namelen);/* in: length of name */ + /********************************************************************** Returns true if the thread is the replication thread on the slave server. Used in srv_conc_enter_innodb() to determine if the thread @@ -49,3 +64,4 @@ thd_has_edited_nontrans_tables( void* thd); /* in: thread handle (THD*) */ #endif +#endif diff --git a/storage/innobase/include/mach0data.h b/storage/innobase/include/mach0data.h index 8377114a723..37d862cc678 100644 --- a/storage/innobase/include/mach0data.h +++ b/storage/innobase/include/mach0data.h @@ -327,6 +327,17 @@ mach_write_to_2_little_endian( byte* dest, /* in: where to write */ ulint n); /* in: unsigned long int to write */ +/************************************************************* +Convert integral type from storage byte order (big endian) to +host byte order. */ +UNIV_INLINE +void +mach_read_int_type( +/*===============*/ + byte* dest, /* out: where to write */ + const byte* src, /* in: where to read from */ + ulint len, /* in: length of src */ + ibool unsigned_type); /* in: signed or unsigned flag */ #ifndef UNIV_NONINL #include "mach0data.ic" #endif diff --git a/storage/innobase/include/mach0data.ic b/storage/innobase/include/mach0data.ic index 03ece7529a8..64fb87f56ed 100644 --- a/storage/innobase/include/mach0data.ic +++ b/storage/innobase/include/mach0data.ic @@ -7,6 +7,8 @@ to the machine format. Created 11/28/1995 Heikki Tuuri ***********************************************************************/ +#include "ut0mem.h" + /*********************************************************** The following function is used to store data in one byte. */ UNIV_INLINE @@ -689,3 +691,38 @@ mach_write_to_2_little_endian( *dest = (byte)(n & 0xFFUL); } + +/************************************************************* +Convert integral type from storage byte order (big endian) to +host byte order. */ +UNIV_INLINE +void +mach_read_int_type( +/*===============*/ + byte* dest, /* out: where to write */ + const byte* src, /* in: where to read from */ + ulint len, /* in: length of src */ + ibool unsigned_type) /* in: signed or unsigned flag */ +{ +#ifdef WORDS_BIGENDIAN + memcpy(dest, src, len); + + if (!unsigned_type) { + dest[0] ^= 128; + } +#else + byte* ptr; + + /* Convert integer data from Innobase to a little-endian format, + sign bit restored to normal. */ + + for (ptr = dest + len; ptr != dest; ++src) { + --ptr; + *ptr = *src; + } + + if (!unsigned_type) { + dest[len - 1] ^= 128; + } +#endif +} diff --git a/storage/innobase/include/mem0dbg.h b/storage/innobase/include/mem0dbg.h index 36cd7a89565..2393e4edb54 100644 --- a/storage/innobase/include/mem0dbg.h +++ b/storage/innobase/include/mem0dbg.h @@ -60,6 +60,14 @@ mem_heap_validate_or_print( ulint* n_blocks); /* out: number of blocks in the heap, if a NULL pointer is passed as this argument, it is ignored */ +/****************************************************************** +Validates the contents of a memory heap. */ + +ibool +mem_heap_validate( +/*==============*/ + /* out: TRUE if ok */ + mem_heap_t* heap); /* in: memory heap */ #endif /* UNIV_MEM_DEBUG || UNIV_DEBUG */ #ifdef UNIV_DEBUG /****************************************************************** @@ -71,14 +79,6 @@ mem_heap_check( /* out: TRUE if ok */ mem_heap_t* heap); /* in: memory heap */ #endif /* UNIV_DEBUG */ -/****************************************************************** -Validates the contents of a memory heap. */ - -ibool -mem_heap_validate( -/*==============*/ - /* out: TRUE if ok */ - mem_heap_t* heap); /* in: memory heap */ #ifdef UNIV_MEM_DEBUG /********************************************************************* TRUE if no memory is currently allocated. */ diff --git a/storage/innobase/include/mem0mem.ic b/storage/innobase/include/mem0mem.ic index adae9ad8a33..6227a27f277 100644 --- a/storage/innobase/include/mem0mem.ic +++ b/storage/innobase/include/mem0mem.ic @@ -271,19 +271,16 @@ mem_heap_free_heap_top( ut_ad(mem_block_get_start(block) <= mem_block_get_free(block)); /* In the debug version erase block from top up */ - { - ulint len = (byte*)block + block->len - old_top; - mem_erase_buf(old_top, len); - UNIV_MEM_FREE(old_top, len); - } + mem_erase_buf(old_top, (byte*)block + block->len - old_top); /* Update allocated memory count */ mutex_enter(&mem_hash_mutex); mem_current_allocated_memory -= (total_size - size); mutex_exit(&mem_hash_mutex); #else /* UNIV_MEM_DEBUG */ - UNIV_MEM_FREE(old_top, (byte*)block + block->len - old_top); + UNIV_MEM_ASSERT_W(old_top, (byte*)block + block->len - old_top); #endif /* UNIV_MEM_DEBUG */ + UNIV_MEM_ALLOC(old_top, (byte*)block + block->len - old_top); /* If free == start, we may free the block if it is not the first one */ @@ -363,6 +360,7 @@ mem_heap_free_top( /* Subtract the free field of block */ mem_block_set_free(block, mem_block_get_free(block) - MEM_SPACE_NEEDED(n)); + UNIV_MEM_ASSERT_W((byte*) block + mem_block_get_free(block), n); #ifdef UNIV_MEM_DEBUG ut_ad(mem_block_get_start(block) <= mem_block_get_free(block)); @@ -378,7 +376,11 @@ mem_heap_free_top( == mem_block_get_start(block))) { mem_heap_block_free(heap, block); } else { - UNIV_MEM_FREE((byte*) block + mem_block_get_free(block), n); + /* Avoid a bogus UNIV_MEM_ASSERT_W() warning in a + subsequent invocation of mem_heap_free_top(). + Originally, this was UNIV_MEM_FREE(), to catch writes + to freed memory. */ + UNIV_MEM_ALLOC((byte*) block + mem_block_get_free(block), n); } } diff --git a/storage/innobase/include/page0cur.h b/storage/innobase/include/page0cur.h index 36370201d9b..04f731414a3 100644 --- a/storage/innobase/include/page0cur.h +++ b/storage/innobase/include/page0cur.h @@ -22,6 +22,7 @@ Created 10/4/1994 Heikki Tuuri /* Page cursor search modes; the values must be in this order! */ +#define PAGE_CUR_UNSUPP 0 #define PAGE_CUR_G 1 #define PAGE_CUR_GE 2 #define PAGE_CUR_L 3 diff --git a/storage/innobase/include/rem0rec.ic b/storage/innobase/include/rem0rec.ic index 95aa65fabba..5a4a0a0b5df 100644 --- a/storage/innobase/include/rem0rec.ic +++ b/storage/innobase/include/rem0rec.ic @@ -801,6 +801,7 @@ rec_offs_set_n_alloc( { ut_ad(offsets); ut_ad(n_alloc > 0); + UNIV_MEM_ASSERT_AND_ALLOC(offsets, n_alloc * sizeof *offsets); offsets[0] = n_alloc; } diff --git a/storage/innobase/include/row0mysql.h b/storage/innobase/include/row0mysql.h index aabb7f5f047..fd7ec8918ee 100644 --- a/storage/innobase/include/row0mysql.h +++ b/storage/innobase/include/row0mysql.h @@ -319,9 +319,11 @@ row_mysql_unfreeze_data_dictionary( /*===============================*/ trx_t* trx); /* in: transaction */ /************************************************************************* -Does a table creation operation for MySQL. If the name of the created -table ends to characters INNODB_MONITOR, then this also starts -printing of monitor output by the master thread. */ +Drops a table for MySQL. If the name of the table ends in +one of "innodb_monitor", "innodb_lock_monitor", "innodb_tablespace_monitor", +"innodb_table_monitor", then this will also start the printing of monitor +output by the master thread. If the table name ends in "innodb_mem_validate", +InnoDB will try to invoke mem_validate(). */ int row_create_table_for_mysql( @@ -399,8 +401,9 @@ row_truncate_table_for_mysql( dict_table_t* table, /* in: table handle */ trx_t* trx); /* in: transaction handle */ /************************************************************************* -Drops a table for MySQL. If the name of the dropped table ends to -characters INNODB_MONITOR, then this also stops printing of monitor +Drops a table for MySQL. If the name of the dropped table ends in +one of "innodb_monitor", "innodb_lock_monitor", "innodb_tablespace_monitor", +"innodb_table_monitor", then this will also stop the printing of monitor output by the master thread. */ int diff --git a/storage/innobase/include/sync0rw.h b/storage/innobase/include/sync0rw.h index abf04253141..7d2f63803d0 100644 --- a/storage/innobase/include/sync0rw.h +++ b/storage/innobase/include/sync0rw.h @@ -101,6 +101,7 @@ void rw_lock_free( /*=========*/ rw_lock_t* lock); /* in: rw-lock */ +#ifdef UNIV_DEBUG /********************************************************************** Checks that the rw-lock has been initialized and that there are no simultaneous shared and exclusive locks. */ @@ -109,6 +110,7 @@ ibool rw_lock_validate( /*=============*/ rw_lock_t* lock); +#endif /* UNIV_DEBUG */ /****************************************************************** NOTE! The following macros should be used in rw s-locking, not the corresponding function. */ diff --git a/storage/innobase/include/univ.i b/storage/innobase/include/univ.i index ba8e6e56219..8163ae16e4e 100644 --- a/storage/innobase/include/univ.i +++ b/storage/innobase/include/univ.i @@ -308,11 +308,39 @@ typedef void* os_thread_ret_t; # define UNIV_MEM_INVALID(addr, size) VALGRIND_MAKE_MEM_UNDEFINED(addr, size) # define UNIV_MEM_FREE(addr, size) VALGRIND_MAKE_MEM_NOACCESS(addr, size) # define UNIV_MEM_ALLOC(addr, size) VALGRIND_MAKE_MEM_UNDEFINED(addr, size) +# define UNIV_MEM_ASSERT_RW(addr, size) do { \ + const void* _p = (const void*) (ulint) \ + VALGRIND_CHECK_MEM_IS_DEFINED(addr, size); \ + if (UNIV_LIKELY_NULL(_p)) \ + fprintf(stderr, "%s:%d: %p[%u] undefined at %ld\n", \ + __FILE__, __LINE__, \ + (const void*) (addr), (unsigned) (size), (long) \ + (((const char*) _p) - ((const char*) (addr)))); \ + } while (0) +# define UNIV_MEM_ASSERT_W(addr, size) do { \ + const void* _p = (const void*) (ulint) \ + VALGRIND_CHECK_MEM_IS_ADDRESSABLE(addr, size); \ + if (UNIV_LIKELY_NULL(_p)) \ + fprintf(stderr, "%s:%d: %p[%u] unwritable at %ld\n", \ + __FILE__, __LINE__, \ + (const void*) (addr), (unsigned) (size), (long) \ + (((const char*) _p) - ((const char*) (addr)))); \ + } while (0) #else # define UNIV_MEM_VALID(addr, size) do {} while(0) # define UNIV_MEM_INVALID(addr, size) do {} while(0) # define UNIV_MEM_FREE(addr, size) do {} while(0) # define UNIV_MEM_ALLOC(addr, size) do {} while(0) +# define UNIV_MEM_ASSERT_RW(addr, size) do {} while(0) +# define UNIV_MEM_ASSERT_W(addr, size) do {} while(0) #endif +#define UNIV_MEM_ASSERT_AND_FREE(addr, size) do { \ + UNIV_MEM_ASSERT_W(addr, size); \ + UNIV_MEM_FREE(addr, size); \ +} while (0) +#define UNIV_MEM_ASSERT_AND_ALLOC(addr, size) do { \ + UNIV_MEM_ASSERT_W(addr, size); \ + UNIV_MEM_ALLOC(addr, size); \ +} while (0) #endif diff --git a/storage/innobase/include/ut0ut.h b/storage/innobase/include/ut0ut.h index 825c10d5f11..a60ce73c35a 100644 --- a/storage/innobase/include/ut0ut.h +++ b/storage/innobase/include/ut0ut.h @@ -263,6 +263,24 @@ ut_copy_file( FILE* dest, /* in: output file */ FILE* src); /* in: input file to be appended to output */ +/************************************************************************** +snprintf(). */ + +#ifdef __WIN__ +int +ut_snprintf( + /* out: number of characters that would + have been printed if the size were + unlimited, not including the terminating + '\0'. */ + char* str, /* out: string */ + size_t size, /* in: str size */ + const char* fmt, /* in: format */ + ...); /* in: format values */ +#else +#define ut_snprintf snprintf +#endif /* __WIN__ */ + #ifndef UNIV_NONINL #include "ut0ut.ic" #endif diff --git a/storage/innobase/mem/mem0dbg.c b/storage/innobase/mem/mem0dbg.c index eb77dd01f6d..72452907c3f 100644 --- a/storage/innobase/mem/mem0dbg.c +++ b/storage/innobase/mem/mem0dbg.c @@ -223,6 +223,8 @@ mem_init_buf( { byte* ptr; + UNIV_MEM_ASSERT_W(buf, n); + for (ptr = buf; ptr < buf + n; ptr++) { if (ut_rnd_gen_ibool()) { @@ -231,6 +233,8 @@ mem_init_buf( *ptr = 0xBE; } } + + UNIV_MEM_INVALID(buf, n); } /******************************************************************* @@ -245,6 +249,8 @@ mem_erase_buf( { byte* ptr; + UNIV_MEM_ASSERT_W(buf, n); + for (ptr = buf; ptr < buf + n; ptr++) { if (ut_rnd_gen_ibool()) { *ptr = 0xDE; @@ -252,6 +258,8 @@ mem_erase_buf( *ptr = 0xAD; } } + + UNIV_MEM_FREE(buf, n); } /******************************************************************* @@ -546,9 +554,7 @@ completed: } *error = FALSE; } -#endif /* UNIV_MEM_DEBUG || UNIV_DEBUG */ -#ifdef UNIV_DEBUG /****************************************************************** Prints the contents of a memory heap. */ static @@ -575,20 +581,6 @@ mem_heap_print( } /****************************************************************** -Checks that an object is a memory heap (or a block of it). */ - -ibool -mem_heap_check( -/*===========*/ - /* out: TRUE if ok */ - mem_heap_t* heap) /* in: memory heap */ -{ - ut_a(heap->magic_n == MEM_BLOCK_MAGIC_N); - - return(TRUE); -} - -/****************************************************************** Validates the contents of a memory heap. */ ibool @@ -614,6 +606,22 @@ mem_heap_validate( return(TRUE); } +#endif /* UNIV_MEM_DEBUG || UNIV_DEBUG */ + +#ifdef UNIV_DEBUG +/****************************************************************** +Checks that an object is a memory heap (or a block of it). */ + +ibool +mem_heap_check( +/*===========*/ + /* out: TRUE if ok */ + mem_heap_t* heap) /* in: memory heap */ +{ + ut_a(heap->magic_n == MEM_BLOCK_MAGIC_N); + + return(TRUE); +} #endif /* UNIV_DEBUG */ #ifdef UNIV_MEM_DEBUG diff --git a/storage/innobase/mem/mem0mem.c b/storage/innobase/mem/mem0mem.c index d89a3a55d88..f4fd178a39c 100644 --- a/storage/innobase/mem/mem0mem.c +++ b/storage/innobase/mem/mem0mem.c @@ -512,9 +512,9 @@ mem_heap_block_free( of hex 0xDE and 0xAD. */ mem_erase_buf((byte*)block, len); - -#endif - UNIV_MEM_FREE(block, len); +#else /* UNIV_MEM_DEBUG */ + UNIV_MEM_ASSERT_AND_FREE(block, len); +#endif /* UNIV_MEM_DEBUG */ if (init_block) { /* Do not have to free: do nothing */ diff --git a/storage/innobase/row/row0mysql.c b/storage/innobase/row/row0mysql.c index b8d201e3da2..b3cf20b78b8 100644 --- a/storage/innobase/row/row0mysql.c +++ b/storage/innobase/row/row0mysql.c @@ -1728,10 +1728,11 @@ row_mysql_unlock_data_dictionary( } /************************************************************************* -Does a table creation operation for MySQL. If the name of the table -to be created is equal with one of the predefined magic table names, -then this also starts printing the corresponding monitor output by -the master thread. */ +Drops a table for MySQL. If the name of the table ends in +one of "innodb_monitor", "innodb_lock_monitor", "innodb_tablespace_monitor", +"innodb_table_monitor", then this will also start the printing of monitor +output by the master thread. If the table name ends in "innodb_mem_validate", +InnoDB will try to invoke mem_validate(). */ int row_create_table_for_mysql( @@ -1756,13 +1757,11 @@ row_create_table_for_mysql( ut_ad(trx->dict_operation_lock_mode == RW_X_LATCH); if (srv_created_new_raw) { - fputs("InnoDB: A new raw disk partition was initialized or\n" - "InnoDB: innodb_force_recovery is on: we do not allow\n" - "InnoDB: database modifications by the user. Shut down\n" - "InnoDB: mysqld and edit my.cnf so that newraw" - " is replaced\n" - "InnoDB: with raw, and innodb_force_... is removed.\n", - stderr); + fputs("InnoDB: A new raw disk partition was initialized:\n" + "InnoDB: we do not allow database modifications" + " by the user.\n" + "InnoDB: Shut down mysqld and edit my.cnf so that newraw" + " is replaced with raw.\n", stderr); dict_mem_table_free(table); trx_commit_for_mysql(trx); @@ -2703,13 +2702,11 @@ row_truncate_table_for_mysql( ut_ad(table); if (srv_created_new_raw) { - fputs("InnoDB: A new raw disk partition was initialized or\n" - "InnoDB: innodb_force_recovery is on: we do not allow\n" - "InnoDB: database modifications by the user. Shut down\n" - "InnoDB: mysqld and edit my.cnf so that newraw" - " is replaced\n" - "InnoDB: with raw, and innodb_force_... is removed.\n", - stderr); + fputs("InnoDB: A new raw disk partition was initialized:\n" + "InnoDB: we do not allow database modifications" + " by the user.\n" + "InnoDB: Shut down mysqld and edit my.cnf so that newraw" + " is replaced with raw.\n", stderr); return(DB_ERROR); } @@ -2898,7 +2895,9 @@ next_rec: /* MySQL calls ha_innobase::reset_auto_increment() which does the same thing. */ + dict_table_autoinc_lock(table); dict_table_autoinc_initialize(table, 0); + dict_table_autoinc_unlock(table); dict_update_statistics(table); trx_commit_for_mysql(trx); @@ -2916,9 +2915,10 @@ funct_exit: #endif /* !UNIV_HOTBACKUP */ /************************************************************************* -Drops a table for MySQL. If the name of the table to be dropped is equal -with one of the predefined magic table names, then this also stops printing -the corresponding monitor output by the master thread. */ +Drops a table for MySQL. If the name of the dropped table ends in +one of "innodb_monitor", "innodb_lock_monitor", "innodb_tablespace_monitor", +"innodb_table_monitor", then this will also stop the printing of monitor +output by the master thread. */ int row_drop_table_for_mysql( @@ -2934,21 +2934,17 @@ row_drop_table_for_mysql( ulint err; const char* table_name; ulint namelen; - char* dir_path_of_temp_table = NULL; - ibool success; ibool locked_dictionary = FALSE; pars_info_t* info = NULL; ut_a(name != NULL); if (srv_created_new_raw) { - fputs("InnoDB: A new raw disk partition was initialized or\n" - "InnoDB: innodb_force_recovery is on: we do not allow\n" - "InnoDB: database modifications by the user. Shut down\n" - "InnoDB: mysqld and edit my.cnf so that newraw" - " is replaced\n" - "InnoDB: with raw, and innodb_force_... is removed.\n", - stderr); + fputs("InnoDB: A new raw disk partition was initialized:\n" + "InnoDB: we do not allow database modifications" + " by the user.\n" + "InnoDB: Shut down mysqld and edit my.cnf so that newraw" + " is replaced with raw.\n", stderr); return(DB_ERROR); } @@ -3232,14 +3228,20 @@ check_next_foreign: } else { ibool is_path; const char* name_or_path; + mem_heap_t* heap; + heap = mem_heap_create(200); + + /* Clone the name, in case it has been allocated + from table->heap, which will be freed by + dict_table_remove_from_cache(table) below. */ + name = mem_heap_strdup(heap, name); space_id = table->space; if (table->dir_path_of_temp_table != NULL) { - dir_path_of_temp_table = mem_strdup( - table->dir_path_of_temp_table); is_path = TRUE; - name_or_path = dir_path_of_temp_table; + name_or_path = mem_heap_strdup( + heap, table->dir_path_of_temp_table); } else { is_path = FALSE; name_or_path = name; @@ -3272,13 +3274,7 @@ check_next_foreign: "InnoDB: of table "); ut_print_name(stderr, trx, TRUE, name); fprintf(stderr, ".\n"); - - goto funct_exit; - } - - success = fil_delete_tablespace(space_id); - - if (!success) { + } else if (!fil_delete_tablespace(space_id)) { fprintf(stderr, "InnoDB: We removed now the InnoDB" " internal data dictionary entry\n" @@ -3296,6 +3292,8 @@ check_next_foreign: err = DB_ERROR; } } + + mem_heap_free(heap); } funct_exit: @@ -3305,10 +3303,6 @@ funct_exit: row_mysql_unlock_data_dictionary(trx); } - if (dir_path_of_temp_table) { - mem_free(dir_path_of_temp_table); - } - trx->op_info = ""; #ifndef UNIV_HOTBACKUP diff --git a/storage/innobase/row/row0sel.c b/storage/innobase/row/row0sel.c index fdf6aa46351..29bded114e0 100644 --- a/storage/innobase/row/row0sel.c +++ b/storage/innobase/row/row0sel.c @@ -531,12 +531,13 @@ row_sel_build_prev_vers( /*====================*/ /* out: DB_SUCCESS or error code */ read_view_t* read_view, /* in: read view */ - plan_t* plan, /* in: plan node for table */ + dict_index_t* index, /* in: plan node for table */ rec_t* rec, /* in: record in a clustered index */ ulint** offsets, /* in/out: offsets returned by rec_get_offsets(rec, plan->index) */ mem_heap_t** offset_heap, /* in/out: memory heap from which the offsets are allocated */ + mem_heap_t** old_vers_heap, /* out: old version heap to use */ rec_t** old_vers, /* out: old version, or NULL if the record does not exist in the view: i.e., it was freshly inserted @@ -545,15 +546,15 @@ row_sel_build_prev_vers( { ulint err; - if (plan->old_vers_heap) { - mem_heap_empty(plan->old_vers_heap); + if (*old_vers_heap) { + mem_heap_empty(*old_vers_heap); } else { - plan->old_vers_heap = mem_heap_create(512); + *old_vers_heap = mem_heap_create(512); } err = row_vers_build_for_consistent_read( - rec, mtr, plan->index, offsets, read_view, offset_heap, - plan->old_vers_heap, old_vers); + rec, mtr, index, offsets, read_view, offset_heap, + *old_vers_heap, old_vers); return(err); } @@ -765,9 +766,11 @@ row_sel_get_clust_rec( if (!lock_clust_rec_cons_read_sees(clust_rec, index, offsets, node->read_view)) { - err = row_sel_build_prev_vers(node->read_view, plan, - clust_rec, &offsets, - &heap, &old_vers, mtr); + err = row_sel_build_prev_vers( + node->read_view, index, clust_rec, + &offsets, &heap, &plan->old_vers_heap, + &old_vers, mtr); + if (err != DB_SUCCESS) { goto err_exit; @@ -1490,10 +1493,11 @@ skip_lock: if (!lock_clust_rec_cons_read_sees(rec, index, offsets, node->read_view)) { - err = row_sel_build_prev_vers(node->read_view, - plan, rec, - &offsets, &heap, - &old_vers, &mtr); + err = row_sel_build_prev_vers( + node->read_view, index, rec, + &offsets, &heap, &plan->old_vers_heap, + &old_vers, &mtr); + if (err != DB_SUCCESS) { goto lock_wait_or_error; @@ -3999,6 +4003,7 @@ no_gap_lock: mutex_enter(&kernel_mutex); if (trx->was_chosen_as_deadlock_victim) { mutex_exit(&kernel_mutex); + err = DB_DEADLOCK; goto lock_wait_or_error; } @@ -4521,7 +4526,8 @@ row_search_check_if_query_cache_permitted( } /*********************************************************************** -Read the AUTOINC column from the current row. */ +Read the AUTOINC column from the current row. If the value is less than +0 and the type is not unsigned then we reset the value to 0. */ static ib_longlong row_search_autoinc_read_column( @@ -4536,6 +4542,7 @@ row_search_autoinc_read_column( const byte* data; ib_longlong value; mem_heap_t* heap = NULL; + /* Our requirement is that dest should be word aligned. */ byte dest[sizeof(value)]; ulint offsets_[REC_OFFS_NORMAL_SIZE]; ulint* offsets = offsets_; @@ -4554,26 +4561,43 @@ row_search_autoinc_read_column( ut_a(len != UNIV_SQL_NULL); ut_a(len <= sizeof value); - /* Copy integer data and restore sign bit */ - if (unsigned_type || (data[0] & 128)) - memset(dest, 0x00, sizeof(dest)); - else - memset(dest, 0xff, sizeof(dest)); + mach_read_int_type(dest, data, len, unsigned_type); + + /* The assumption here is that the AUTOINC value can't be negative + and that dest is word aligned. */ + switch (len) { + case 8: + value = *(ib_longlong*) dest; + break; + + case 4: + value = *(ib_uint32_t*) dest; + break; - memcpy(dest + (sizeof(value) - len), data, len); + case 3: + value = *(ib_uint32_t*) dest; + value &= 0xFFFFFF; + break; - if (!unsigned_type) - dest[sizeof(value) - len] ^= 128; + case 2: + value = *(uint16 *) dest; + break; - /* The assumption here is that the AUTOINC value can't be negative.*/ - value = (((ib_longlong) mach_read_from_4(dest)) << 32) | - ((ib_longlong) mach_read_from_4(dest + 4)); + case 1: + value = *dest; + break; + + default: + ut_error; + } if (UNIV_LIKELY_NULL(heap)) { mem_heap_free(heap); } - ut_a(value >= 0); + if (!unsigned_type && value < 0) { + value = 0; + } return(value); } diff --git a/storage/innobase/sync/sync0rw.c b/storage/innobase/sync/sync0rw.c index 4db780c8b3f..8dbc69816e9 100644 --- a/storage/innobase/sync/sync0rw.c +++ b/storage/innobase/sync/sync0rw.c @@ -174,9 +174,7 @@ rw_lock_free( /*=========*/ rw_lock_t* lock) /* in: rw-lock */ { -#ifdef UNIV_DEBUG - ut_a(rw_lock_validate(lock)); -#endif /* UNIV_DEBUG */ + ut_ad(rw_lock_validate(lock)); ut_a(rw_lock_get_writer(lock) == RW_LOCK_NOT_LOCKED); ut_a(rw_lock_get_waiters(lock) == 0); ut_a(rw_lock_get_reader_count(lock) == 0); @@ -199,6 +197,7 @@ rw_lock_free( mutex_exit(&rw_lock_list_mutex); } +#ifdef UNIV_DEBUG /********************************************************************** Checks that the rw-lock has been initialized and that there are no simultaneous shared and exclusive locks. */ @@ -226,6 +225,7 @@ rw_lock_validate( return(TRUE); } +#endif /* UNIV_DEBUG */ /********************************************************************** Lock an rw-lock in shared mode for the current thread. If the rw-lock is diff --git a/storage/innobase/sync/sync0sync.c b/storage/innobase/sync/sync0sync.c index bf3f4d1ff20..39872f72204 100644 --- a/storage/innobase/sync/sync0sync.c +++ b/storage/innobase/sync/sync0sync.c @@ -830,7 +830,7 @@ sync_thread_levels_g( mutex = slot->latch; fprintf(stderr, - "InnoDB error: sync levels should be" + "InnoDB: sync levels should be" " > %lu but a level is %lu\n", (ulong) limit, (ulong) slot->level); diff --git a/storage/innobase/ut/ut0ut.c b/storage/innobase/ut/ut0ut.c index 389063ad821..1ca278cd633 100644 --- a/storage/innobase/ut/ut0ut.c +++ b/storage/innobase/ut/ut0ut.c @@ -18,6 +18,7 @@ Created 5/11/1994 Heikki Tuuri #include "ut0sort.h" #include "trx0trx.h" +#include "ha_prototypes.h" ibool ut_always_false = FALSE; @@ -70,22 +71,6 @@ ut_gettimeofday( #define ut_gettimeofday gettimeofday #endif -#ifndef UNIV_HOTBACKUP -/********************************************************************* -Display an SQL identifier. -This definition must match the one in sql/ha_innodb.cc! */ -extern -void -innobase_print_identifier( -/*======================*/ - FILE* f, /* in: output stream */ - trx_t* trx, /* in: transaction */ - ibool table_id,/* in: TRUE=print a table name, - FALSE=print other identifier */ - const char* name, /* in: name to print */ - ulint namelen);/* in: length of name */ -#endif /* !UNIV_HOTBACKUP */ - /************************************************************ Gets the high 32 bits in a ulint. That is makes a shift >> 32, but since there seem to be compiler bugs in both gcc and Visual C++, @@ -360,6 +345,8 @@ ut_print_buf( const byte* data; ulint i; + UNIV_MEM_ASSERT_RW(buf, len); + fprintf(file, " len %lu; hex ", len); for (data = (const byte*)buf, i = 0; i < len; i++) { @@ -474,17 +461,20 @@ ut_print_namel( #ifdef UNIV_HOTBACKUP fwrite(name, 1, namelen, f); #else - char* slash = memchr(name, '/', namelen); + if (table_id) { + char* slash = memchr(name, '/', namelen); + if (!slash) { - if (UNIV_LIKELY_NULL(slash)) { - /* Print the database name and table name separately. */ - ut_ad(table_id); + goto no_db_name; + } + /* Print the database name and table name separately. */ innobase_print_identifier(f, trx, TRUE, name, slash - name); putc('.', f); innobase_print_identifier(f, trx, TRUE, slash + 1, namelen - (slash - name) - 1); } else { +no_db_name: innobase_print_identifier(f, trx, table_id, name, namelen); } #endif @@ -515,3 +505,44 @@ ut_copy_file( } } while (len > 0); } + +/************************************************************************** +snprintf(). */ + +#ifdef __WIN__ +#include <stdarg.h> +int +ut_snprintf( + /* out: number of characters that would + have been printed if the size were + unlimited, not including the terminating + '\0'. */ + char* str, /* out: string */ + size_t size, /* in: str size */ + const char* fmt, /* in: format */ + ...) /* in: format values */ +{ + int res; + va_list ap1; + va_list ap2; + + va_start(ap1, fmt); + va_start(ap2, fmt); + + res = _vscprintf(fmt, ap1); + ut_a(res != -1); + + if (size > 0) { + _vsnprintf(str, size, fmt, ap2); + + if ((size_t) res >= size) { + str[size - 1] = '\0'; + } + } + + va_end(ap1); + va_end(ap2); + + return(res); +} +#endif /* __WIN__ */ diff --git a/storage/myisam/mi_check.c b/storage/myisam/mi_check.c index fe6b716877c..7cd35295cb0 100644 --- a/storage/myisam/mi_check.c +++ b/storage/myisam/mi_check.c @@ -1376,6 +1376,139 @@ int chk_data_link(MI_CHECK *param, MI_INFO *info,int extend) } /* chk_data_link */ +/** + @brief Drop all indexes + + @param[in] param check parameters + @param[in] info MI_INFO handle + @param[in] force if to force drop all indexes + + @return status + @retval 0 OK + @retval != 0 Error + + @note + Once allocated, index blocks remain part of the key file forever. + When indexes are disabled, no block is freed. When enabling indexes, + no block is freed either. The new indexes are create from new + blocks. (Bug #4692) + + Before recreating formerly disabled indexes, the unused blocks + must be freed. There are two options to do this: + - Follow the tree of disabled indexes, add all blocks to the + deleted blocks chain. Would require a lot of random I/O. + - Drop all blocks by clearing all index root pointers and all + delete chain pointers and resetting key_file_length to the end + of the index file header. This requires to recreate all indexes, + even those that may still be intact. + The second method is probably faster in most cases. + + When disabling indexes, MySQL disables either all indexes or all + non-unique indexes. When MySQL [re-]enables disabled indexes + (T_CREATE_MISSING_KEYS), then we either have "lost" blocks in the + index file, or there are no non-unique indexes. In the latter case, + mi_repair*() would not be called as there would be no disabled + indexes. + + If there would be more unique indexes than disabled (non-unique) + indexes, we could do the first method. But this is not implemented + yet. By now we drop and recreate all indexes when repair is called. + + However, there is an exception. Sometimes MySQL disables non-unique + indexes when the table is empty (e.g. when copying a table in + mysql_alter_table()). When enabling the non-unique indexes, they + are still empty. So there is no index block that can be lost. This + optimization is implemented in this function. + + Note that in normal repair (T_CREATE_MISSING_KEYS not set) we + recreate all enabled indexes unconditonally. We do not change the + key_map. Otherwise we invert the key map temporarily (outside of + this function) and recreate the then "seemingly" enabled indexes. + When we cannot use the optimization, and drop all indexes, we + pretend that all indexes were disabled. By the inversion, we will + then recrate all indexes. +*/ + +static int mi_drop_all_indexes(MI_CHECK *param, MI_INFO *info, my_bool force) +{ + MYISAM_SHARE *share= info->s; + MI_STATE_INFO *state= &share->state; + uint i; + int error; + DBUG_ENTER("mi_drop_all_indexes"); + + /* + If any of the disabled indexes has a key block assigned, we must + drop and recreate all indexes to avoid losing index blocks. + + If we want to recreate disabled indexes only _and_ all of these + indexes are empty, we don't need to recreate the existing indexes. + */ + if (!force && (param->testflag & T_CREATE_MISSING_KEYS)) + { + DBUG_PRINT("repair", ("creating missing indexes")); + for (i= 0; i < share->base.keys; i++) + { + DBUG_PRINT("repair", ("index #: %u key_root: 0x%lx active: %d", + i, (long) state->key_root[i], + mi_is_key_active(state->key_map, i))); + if ((state->key_root[i] != HA_OFFSET_ERROR) && + !mi_is_key_active(state->key_map, i)) + { + /* + This index has at least one key block and it is disabled. + We would lose its block(s) if would just recreate it. + So we need to drop and recreate all indexes. + */ + DBUG_PRINT("repair", ("nonempty and disabled: recreate all")); + break; + } + } + if (i >= share->base.keys) + { + /* + All of the disabled indexes are empty. We can just recreate them. + Flush dirty blocks of this index file from key cache and remove + all blocks of this index file from key cache. + */ + DBUG_PRINT("repair", ("all disabled are empty: create missing")); + error= flush_key_blocks(share->key_cache, share->kfile, + FLUSH_FORCE_WRITE); + goto end; + } + /* + We do now drop all indexes and declare them disabled. With the + T_CREATE_MISSING_KEYS flag, mi_repair*() will recreate all + disabled indexes and enable them. + */ + mi_clear_all_keys_active(state->key_map); + DBUG_PRINT("repair", ("declared all indexes disabled")); + } + + /* Remove all key blocks of this index file from key cache. */ + if ((error= flush_key_blocks(share->key_cache, share->kfile, + FLUSH_IGNORE_CHANGED))) + goto end; + + /* Clear index root block pointers. */ + for (i= 0; i < share->base.keys; i++) + state->key_root[i]= HA_OFFSET_ERROR; + + /* Clear the delete chains. */ + for (i= 0; i < state->header.max_block_size_index; i++) + state->key_del[i]= HA_OFFSET_ERROR; + + /* Reset index file length to end of index file header. */ + info->state->key_file_length= share->base.keystart; + + DBUG_PRINT("repair", ("dropped all indexes")); + /* error= 0; set by last (error= flush_key_bocks()). */ + + end: + DBUG_RETURN(error); +} + + /* Recover old table by reading each record and writing all keys */ /* Save new datafile-name in temp_filename */ @@ -1383,7 +1516,6 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, char * name, int rep_quick) { int error,got_error; - uint i; ha_rows start_records,new_header_length; my_off_t del; File new_file; @@ -1487,25 +1619,10 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, info->update= (short) (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED); - /* - Clear all keys. Note that all key blocks allocated until now remain - "dead" parts of the key file. (Bug #4692) - */ - for (i=0 ; i < info->s->base.keys ; i++) - share->state.key_root[i]= HA_OFFSET_ERROR; - - /* Drop the delete chain. */ - for (i=0 ; i < share->state.header.max_block_size_index ; i++) - share->state.key_del[i]= HA_OFFSET_ERROR; - - /* - If requested, activate (enable) all keys in key_map. In this case, - all indexes will be (re-)built. - */ + /* This function always recreates all enabled indexes. */ if (param->testflag & T_CREATE_MISSING_KEYS) mi_set_all_keys_active(share->state.key_map, share->base.keys); - - info->state->key_file_length=share->base.keystart; + mi_drop_all_indexes(param, info, TRUE); lock_memory(param); /* Everything is alloced */ @@ -2106,8 +2223,9 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info, ulong *rec_per_key_part; char llbuff[22]; SORT_INFO sort_info; - ulonglong key_map=share->state.key_map; + ulonglong key_map; DBUG_ENTER("mi_repair_by_sort"); + LINT_INIT(key_map); start_records=info->state->records; got_error=1; @@ -2180,25 +2298,14 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info, } info->update= (short) (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED); - if (!(param->testflag & T_CREATE_MISSING_KEYS)) - { - /* - Flush key cache for this file if we are calling this outside - myisamchk - */ - flush_key_blocks(share->key_cache,share->kfile, FLUSH_IGNORE_CHANGED); - /* Clear the pointers to the given rows */ - for (i=0 ; i < share->base.keys ; i++) - share->state.key_root[i]= HA_OFFSET_ERROR; - for (i=0 ; i < share->state.header.max_block_size_index ; i++) - share->state.key_del[i]= HA_OFFSET_ERROR; - info->state->key_file_length=share->base.keystart; - } - else + + /* Optionally drop indexes and optionally modify the key_map. */ + mi_drop_all_indexes(param, info, FALSE); + key_map= share->state.key_map; + if (param->testflag & T_CREATE_MISSING_KEYS) { - if (flush_key_blocks(share->key_cache,share->kfile, FLUSH_FORCE_WRITE)) - goto err; - key_map= ~key_map; /* Create the missing keys */ + /* Invert the copied key_map to recreate all disabled indexes. */ + key_map= ~key_map; } sort_info.info=info; @@ -2242,6 +2349,10 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info, sort_param.read_cache=param->read_cache; sort_param.keyinfo=share->keyinfo+sort_param.key; sort_param.seg=sort_param.keyinfo->seg; + /* + Skip this index if it is marked disabled in the copied + (and possibly inverted) key_map. + */ if (! mi_is_key_active(key_map, sort_param.key)) { /* Remember old statistics for key */ @@ -2249,6 +2360,8 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info, (char*) (share->state.rec_per_key_part + (uint) (rec_per_key_part - param->rec_per_key_part)), sort_param.keyinfo->keysegs*sizeof(*rec_per_key_part)); + DBUG_PRINT("repair", ("skipping seemingly disabled index #: %u", + sort_param.key)); continue; } @@ -2329,8 +2442,11 @@ int mi_repair_by_sort(MI_CHECK *param, register MI_INFO *info, if (param->testflag & T_STATISTICS) update_key_parts(sort_param.keyinfo, rec_per_key_part, sort_param.unique, param->stats_method == MI_STATS_METHOD_IGNORE_NULLS? - sort_param.notnull: NULL,(ulonglong) info->state->records); + sort_param.notnull: NULL, + (ulonglong) info->state->records); + /* Enable this index in the permanent (not the copied) key_map. */ mi_set_key_active(share->state.key_map, sort_param.key); + DBUG_PRINT("repair", ("set enabled index #: %u", sort_param.key)); if (sort_param.fix_datafile) { @@ -2531,9 +2647,10 @@ int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info, IO_CACHE new_data_cache; /* For non-quick repair. */ IO_CACHE_SHARE io_share; SORT_INFO sort_info; - ulonglong key_map=share->state.key_map; + ulonglong key_map; pthread_attr_t thr_attr; DBUG_ENTER("mi_repair_parallel"); + LINT_INIT(key_map); start_records=info->state->records; got_error=1; @@ -2635,25 +2752,14 @@ int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info, } info->update= (short) (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED); - if (!(param->testflag & T_CREATE_MISSING_KEYS)) - { - /* - Flush key cache for this file if we are calling this outside - myisamchk - */ - flush_key_blocks(share->key_cache,share->kfile, FLUSH_IGNORE_CHANGED); - /* Clear the pointers to the given rows */ - for (i=0 ; i < share->base.keys ; i++) - share->state.key_root[i]= HA_OFFSET_ERROR; - for (i=0 ; i < share->state.header.max_block_size_index ; i++) - share->state.key_del[i]= HA_OFFSET_ERROR; - info->state->key_file_length=share->base.keystart; - } - else + + /* Optionally drop indexes and optionally modify the key_map. */ + mi_drop_all_indexes(param, info, FALSE); + key_map= share->state.key_map; + if (param->testflag & T_CREATE_MISSING_KEYS) { - if (flush_key_blocks(share->key_cache,share->kfile, FLUSH_FORCE_WRITE)) - goto err; - key_map= ~key_map; /* Create the missing keys */ + /* Invert the copied key_map to recreate all disabled indexes. */ + key_map= ~key_map; } sort_info.info=info; @@ -2709,6 +2815,10 @@ int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info, sort_param[i].key=key; sort_param[i].keyinfo=share->keyinfo+key; sort_param[i].seg=sort_param[i].keyinfo->seg; + /* + Skip this index if it is marked disabled in the copied + (and possibly inverted) key_map. + */ if (! mi_is_key_active(key_map, key)) { /* Remember old statistics for key */ diff --git a/storage/myisam/mi_dynrec.c b/storage/myisam/mi_dynrec.c index cdd70abe9ad..9940cf62204 100644 --- a/storage/myisam/mi_dynrec.c +++ b/storage/myisam/mi_dynrec.c @@ -326,6 +326,29 @@ static int write_dynamic_record(MI_INFO *info, const uchar *record, DBUG_ENTER("write_dynamic_record"); flag=0; + + /* + Check if we have enough room for the new record. + First we do simplified check to make usual case faster. + Then we do more precise check for the space left. + Though it still is not absolutely precise, as + we always use MI_MAX_DYN_BLOCK_HEADER while it can be + less in the most of the cases. + */ + + if (unlikely(info->s->base.max_data_file_length - + info->state->data_file_length < + reclength + MI_MAX_DYN_BLOCK_HEADER)) + { + if (info->s->base.max_data_file_length - info->state->data_file_length + + info->state->empty - info->state->del * MI_MAX_DYN_BLOCK_HEADER < + reclength + MI_MAX_DYN_BLOCK_HEADER) + { + my_errno=HA_ERR_RECORD_FILE_FULL; + DBUG_RETURN(1); + } + } + do { if (_mi_find_writepos(info,reclength,&filepos,&length)) @@ -762,6 +785,51 @@ static int update_dynamic_record(MI_INFO *info, my_off_t filepos, uchar *record, DBUG_ENTER("update_dynamic_record"); flag=block_info.second_read=0; + /* + Check if we have enough room for the record. + First we do simplified check to make usual case faster. + Then we do more precise check for the space left. + Though it still is not absolutely precise, as + we always use MI_MAX_DYN_BLOCK_HEADER while it can be + less in the most of the cases. + */ + + /* + compare with just the reclength as we're going + to get some space from the old replaced record + */ + if (unlikely(info->s->base.max_data_file_length - + info->state->data_file_length < reclength)) + { + /* + let's read the old record's block to find out the length of the + old record + */ + if ((error=_mi_get_block_info(&block_info,info->dfile,filepos)) + & (BLOCK_DELETED | BLOCK_ERROR | BLOCK_SYNC_ERROR | BLOCK_FATAL_ERROR)) + { + DBUG_PRINT("error",("Got wrong block info")); + if (!(error & BLOCK_FATAL_ERROR)) + my_errno=HA_ERR_WRONG_IN_RECORD; + goto err; + } + + /* + if new record isn't longer, we can go on safely + */ + if (block_info.rec_len < reclength) + { + if (info->s->base.max_data_file_length - info->state->data_file_length + + info->state->empty - info->state->del * MI_MAX_DYN_BLOCK_HEADER < + reclength - block_info.rec_len + MI_MAX_DYN_BLOCK_HEADER) + { + my_errno=HA_ERR_RECORD_FILE_FULL; + goto err; + } + } + block_info.second_read=0; + } + while (reclength > 0) { if (filepos != info->s->state.dellink) diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c index 6b71f29f0d2..5dce4aad75e 100644 --- a/strings/ctype-simple.c +++ b/strings/ctype-simple.c @@ -853,7 +853,7 @@ size_t my_long10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)), { if (val < 0) { - val= -val; + val= -(unsigned long int)val; *dst++= '-'; len--; sign= 1; @@ -890,7 +890,7 @@ size_t my_longlong10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)), { if (val < 0) { - val = -val; + val = -(ulonglong)val; *dst++= '-'; len--; sign= 1; diff --git a/support-files/MacOSX/ReadMe.txt b/support-files/MacOSX/ReadMe.txt new file mode 100644 index 00000000000..485dbaeaa37 --- /dev/null +++ b/support-files/MacOSX/ReadMe.txt @@ -0,0 +1,8 @@ + +You can find information about how to install on Mac OS X at + + http://dev.mysql.com/doc/refman/5.0/en/mac-os-x-installation.html + +The MySQL Reference Manual is also available in various formats on +http://dev.mysql.com/doc; if you're interested in the DocBook XML +sources go to http://svn.mysql.com. diff --git a/support-files/compiler_warnings.supp b/support-files/compiler_warnings.supp index 0a2c720b81b..c437748c770 100644 --- a/support-files/compiler_warnings.supp +++ b/support-files/compiler_warnings.supp @@ -36,6 +36,11 @@ pars0lex.l: .*conversion from 'ulint' to 'int', possible loss of data.* db_vrfy.c : .*comparison is always false due to limited range of data type.* # +# readline is not maintained by us +# +.*/cmd-line-utils/readline/.* : .* + +# # Ignore all conversion warnings on windows 64 # (Is safe as we are not yet supporting strings >= 2G) # @@ -77,3 +82,4 @@ mi_packrec.c : .*result of 32-bit shift implicitly converted to 64 bits.* : 560- # Wrong compiler warnings # .* : .*no matching operator delete found; memory will not be freed if initialization throws an exception.* +ctype-simple.c : .*unary minus operator applied to unsigned type, result still unsigned.* diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh index e0933aff8a4..65e13aaaca0 100644 --- a/support-files/mysql.server.sh +++ b/support-files/mysql.server.sh @@ -314,7 +314,7 @@ case "$mode" in fi exit $return_value else - log_failure_msg "Couldn't find MySQL manager or server" + log_failure_msg "Couldn't find MySQL manager ($manager) or server ($bindir/mysqld_safe)" fi ;; diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 0cb9ff49128..8bfe315fb59 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -7787,7 +7787,7 @@ static void test_explain_bug() verify_prepare_field(result, 5, "Extra", "EXTRA", mysql_get_server_version(mysql) <= 50000 ? MYSQL_TYPE_STRING : MYSQL_TYPE_VAR_STRING, - 0, 0, "", 20, 0); + 0, 0, "", 27, 0); mysql_free_result(result); mysql_stmt_close(stmt); |